文件包含漏洞
low级别
随便点了个文件发现有传导文件参数
Windows常见的敏感信息路径
系统版本:C:\boot.ini
IIS配置文件:C:\windows\system32\inetsrv\MetaBase.xml
存储Windows系统初次安装的密码:C:\windows\repair\sam
查看php配置信息:C:\windows\php.ini
Linux常见的敏感信息路径
系统用户信息:/etc/passwd
DNS配置文件:/etc/resolv.conf
ssh生成文件:/root/.ssh/known_hosts
网络配置文件:/etc/network/interfaces
试着包含下敏感文件,成功了证明存在文件包含漏洞
linux
windows
分析页面源码发现没有对输入的数据做任何筛选和过滤,这造成了恶意命令的加载
medium级别
分析源码发现…/和…\以及http和https都被替换为空格,因为str_replace只替换一次,我们可以采用双写绕过hthttp://tp://
首先和文件上传漏洞联动上传一个文件6.php一句话木马,然后通过http://127.0.0.1远程包含进行访问,发现访问成功
high级别
分析源码发现用了fnmatch进行匹配,验证传输的参数必须包含file,这里我们可以用file协议访问本地文件
总结:
漏洞原理:利用包含函数,在没有做严格过滤或白名单基础上进行包含
方法:…/访问敏感文件,双写绕过,file协议,php://filter/convert.base64-encode/resource=xxx伪协议如下
防御:
1、过滤各种…/,http://,https://
2、配置php.ini配置文件(allow_url_fopen=off、allow_url_include=off)
2、配置php.ini配置文件(allow_url_fopen=off、allow_url_include=off)
3、基于白名单进行防御