文件包含&php伪协议
文件包含
原理
文件包含漏洞是一种常见的web类型漏洞,因为很多脚本语言支持使用文件包含,也就是我们所说的文件包含函数,网站开发者经常会把一些代码插入到指定的地方,从而节省之间避免再次编写 ,这就是包含函数的基础解释 ,但是我们不光可以包含我们预先指定的文件,也可以包含我们服务器内部的其他文件,前提条件就是我们需要有可读的权限才能读取这些文件 ,所以这样就会导致文件包含漏洞
危害
读取WEB程序配置文件
利用这个漏洞并且知道WEB程序的路径便可以读取一些重要的配置文件获取重要信息,例如数据库连接的账号密码等等
利用文件上传漏洞组合getshell
利用文件上传处上传含有恶意代码的合法文件,然后利用文件包含漏洞,将恶意代码解析达到getshell的目的
包含日志文件getshell
这种漏洞利用方式下需要有一定的权限,需要Burp配合修改数据包防止转义。
防御
无需情况下设置allow_url_include和allow_url_fopen为关闭
对可以包含的文件进行限制,可以使用白名单的方式,或者设置可以包含的目录,如open_basedir
尽量不使用动态包含
严格检查变量是否已经初始化。
建议假定所有输入都是可疑的,尝试对所有输入提交可能可能包含的文件地址,包括服务器本地文件及远程文件,进行严格的检查,参数中不允许出现../之类的目录跳转符。
严格检查include类的文件包含函数中的参数是否外界可控。
不要仅仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。
在发布应用程序之前测试所有已知的威胁。
个人理解
文件包含大部分使用的是伪协议,对于伪协议给大家几个参考连接
https://www.freebuf.com/articles/web/247614.html

浙公网安备 33010602011771号