文件包含&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

https://segmentfault.com/a/1190000018991087

[Dar1in9's Blog]

https://www.cnblogs.com/cainiao-chuanqi/p/15818547.html

posted @ 2022-04-30 19:30  阿力先生  阅读(192)  评论(0)    收藏  举报