文件包含漏洞利用与防御

文件包含漏洞

文件包含是指程序代码在处理包含文件的时候没有严格控制。
导致用户可以构造参数 包含远程代码在服务器上执行,并得到网站配置或者敏感文件,进而获取到服务器权 限,造成网站被恶意删除,用户和交易数据被篡改等一系列恶性后果。
主要包括本地文件包含和远程文件包含两种形式
由于开发人员编写源码,开放若将可重复使用的 代码插入到单个的文件中,井在需要的时候将它们包含在特殊的功能代码文件中,然 后包含文件中的代码会被解释执行。
由于并没有针对代码中存在文件包含的函数入口 做过滤导致客户端可以提交恶意构造语句提交,井交由服务器端解释执行。
文件包含攻击中WEB服务器源码里可能存在inlcudeO此类文件包含操作函数,可以通过客户 端构造提交文件路径,是该漏洞攻击成功的最主要原因。

本地文件包含

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

实践

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
包含系统敏感文件
在这里插入图片描述

远程文件包含

PFI
在这里插入图片描述
在这里插入图片描述

PHP相关函数

在这里插入图片描述

在这里插入图片描述

伪协议

在这里插入图片描述

DVWA靶场练习

File Inclusion

CTFHub文件包含

CTFHubRCE

文件包含漏洞挖掘与利用

在这里插入图片描述
查看是否由常见的文件包含函数
尝试PHP伪协议

利用流程
【1】发现漏洞
【2】上传shell,读取敏感文件
【3】执行恶意代码
利用工具

  • wfuzz扫描目录
    》–hw 去除不存在文件
    在这里插入图片描述
    在这里插入图片描述

文件包含漏洞修复方案

1、 PHP配置php. ini关闭远程文件包含功能(allow.urljnclude = Off)
2、 严格检查变量是否已经初始化.
3、 建议假定所有输入都是可疑的,尝试对所有输入提交可能可能包含的文件地址, 包括服务器本地文件及远程文件,进行严格的检查,参数中不允许出现…/之类 的目录跳转符。
4、 严格检查include类的文件包含函数中的参数是否外界可控.
5、 不要仅仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。
6、 在发布应用程序之前测试所有已知的威胁
7、 设置文件白名单

猜你喜欢

转载自blog.csdn.net/m0_57379855/article/details/123418266
今日推荐