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. 漏洞分析

 

 
posted @ 2019-10-08 09:18  年糕SDS  阅读(248)  评论(0)    收藏  举报