小迪安全课堂笔记文件包含
思维导图
原理
开发人员将相同的函数写入单独的文件中,需要使用某个函数时直接调用此文件,无需再次编写,这种文件调用的过程称文件包含。(开发,封装调用)
文件包含的作用:将文件以脚本的格式执行(根据当前网站脚本类型)
白盒
黑盒
看参数及功能点
参数后是否为一个文件,如x=test.txt
本地包含
无限制,跨目录…/…/www.txt
有限制,增加了后缀html
%00截断绕过
条件:magic_quotes_gpc = off 且php<5.3.4
长度截断绕过
条件:windows,点号需要长于256,linux长于4096
远程包含
allow_url_include开启状态,则支持远程包含
无限制
文件中phpinfo也会呈现出代码效果,
那么就可以将这个代码换成后门代码。
有限制
绕过:? %20 %23
伪协议
PHP支持的伪协议
例子:
filter 文件读取,
input代码执行
input文件写入,后门
file:文件读取,需要完整路径
案例
CTF-南邮大
http://4.chinalover.sinaapp.com/web7/index.php
1、点击
2、参数file=show.php,可能是文件包含
3、访问show.php,断定为文件包含
4、判断操作系统,大小写敏感,Linux。
5、使用php伪协议,发现存在过滤
6、尝试读取文件
7、解密
i 春秋百度杯真题-白盒
cat dle345aae.php
某CMS 程序文件包含利用-黑盒
创建log文件,其中有后门代码
文件包含,触发代码。
修复
固定后缀
固定文件,不写变量
WAF或监控