文件包含漏洞十分的危险
它的基础原理就是后台语句的包含语句(include等函数) 未经过严谨过滤,并用户可控
文件包含的漏洞危险不仅仅体现在本身的危害,还有就是和其他漏洞搭配使用
首先写一个一句话木马
在文件上传处有限制不能上传
更改后缀后上传(在一句话前加上了jpg标志位,直接把jpg图片后缀改成txt复制前几行就行)
切换到文件包含漏洞页面 ,在url里加上刚才的路径(因为文件储存的位置正好是从跟目录开始的,在别的时候需要注意)
一句话执行命令
这是medium等级的源码可以看到它过滤了http,https 以及 ../ 和.. 这里我用的双写让../经过过滤 同理也可以直接对http进行绕过(htthttpp)
遇到的问题
虽然木马可以执行了,但要是直接用菜刀连接的话是连不上的,需要添加相应等级的cookie
2.对文件包含漏洞的总结(仅重点不详细)
文件包含分两种 本地文件包含 远程文件包含
区别
本地包含如字面意思
配置要求 开启allow_url_fopen (默认开启)
远程文件包含 使用可控外链进行包含
配置要求 开始allow_url_fopen
allow_url_include (默认关闭)
特殊技巧
利用日志文件完成本地包含
在session临时文件完成本地包含
基础绕过
后台默认在语句后加后缀
需要绕过.php 可用 ? %23 %00 %20 如果与包含文件后缀相同,也可以在url里文件不加后缀完成闭合
系统特性绕过
windows 最多256字节 多余丢弃
用...填充字节
linux 最多4096字节 多余丢掉
用/.填充字节
php伪协议
file://访问本地系统中文件
配置要求 allow_url_fopen 开启
· php://filter 读取php源码
配置要求 无条件
使用方法 php://filter/read=convert.base64_encode/resource=文件名(进行base64编码是为了防止代码被包含函数执行)
zip:// 解压文件
配置要求 无条件
、 使用方法 zip://压缩包的绝对路径#压缩包内的文件
技巧 zip:// xxx.jpg#xx.php (路径里无论后缀是什么都当zip执行)