DAY13:文件包含
一、什么是文件包含漏洞
1. 文件包含漏洞原理
在通过PHP相应函数(比如include())引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入(将包含的内容当成PHP代码来执行)。
2. 文件包含漏洞形成,需要满足两个条件
3. 常用文件包含函数

二、文件包含漏洞利用
1. 两个关键选项
2. 本地文件包含(LFI),allow_url_include选项On/Off都行
包含文件过后,菜刀连接时的url要是整个包含文件的完整url

filename=相对路径 / 绝对路径下的文件名
**如果网站存在本地包含漏洞又暂时不能上传文件,怎么解决?
access.log文件,先将参数写成一句话木马形式使其存入日志文件,若特殊符号被浏览器转码,通过抓包将转码的符号修改回来
一般Linux下的日志路径:/var/log/xxx.log
3. 远程文件包含(RFI)
服务器之间要能相互访问才能包含成功

filename=要包含的URL
4. 文件包含漏洞的危害
①敏感信息泄露
filename=C:\windows\system.ini
②获取webshell
③任意命令执行(114.php中含有一句话木马)
5. 包含日志文件

6. 其他文件
三、PHP伪协议
1. 一些PHP伪协议

①file协议
②php://filter
③php://input

在POST里面输入PHP代码,若插件不能用则抓包手工修改
生成的文件在产生漏洞文件的同一目录
④data://(条件苛刻,可用性不高)
⑤phar://
⑥zip://
⑦PHP常用伪协议用法
2. 漏洞分析
浙公网安备 33010602011771号