文件包含可以利用的方式
(1) 直接进行文件的遍历读取;(读取敏感信息)
在获悉中间件 IIS、apache与第三方集成包等程序默认安装路径的情况,可以直接利用文件包含结合目录遍历进行“配置文件的读取”
include.php?file=../../../etc/pass
include.php?file=../../../xampp/htdocs/config.php
(2)解析符合php规范的任何文件;(本地包含配合文件上传)
可以利用文件包含函数可以解析任何符合PHP规范的文件的特性,结合文件上传绕过WAF,获取webshell。
利用过程:
1)上传shell.txt /shell.jpg /shell.rar /shell.xxx (需要确认上传后,上传文件的绝对路径)
2) 使用文件包含漏洞,直接解析上传的非php后缀的文件,获取webshell。
(3)使用PHP封装协议(读取php文件源码)
PHP内置有很多类似于URL风格的封装协议:
file:// --- 访问本地文件系统;
http:// --- 访问HTTP(s)网址;
ftp:// --- 访问FTP(s)URLs ;
php:// --- 访问输入/输出流(I/0 stream)
eg: http://www.test.com/index.php?page=php://filter/read=convert.base64-encode/resource=config.php
访问URL,得到Base64加密后的字符串 --- 》 加密的代码,进过解密后可以得到源文件内容。