概述
通过加强对本地文件包含(LFI)渗透测试技术的研究,可以帮助渗透测试人员和学生在未来的渗透测试过程中,识别和测试LFI漏洞。在Web程序渗透测试中,利用本文中的技术发现的LFI漏洞是渗透测试中的典型漏洞。此外,在本文中提到有一些技术,在CTF大赛中也经常被利用。
什么是本地文件包含(LFI)漏洞?
LFI允许攻击者通过浏览器包含一个服务器上的文件。当一个WEB应用程序在没有正确过滤输入数据的情况下,就有可能存在这个漏洞,该漏洞允许攻击者操纵输入数据、注入路径遍历字符、包含web服务器的其他文件。
漏洞代码实例
如下图,这是一个存在本地
t017bd5fdc00ff3dd3d.jpg (25.82 KB, 下载次数: 38)
2017-4-20 16:37 上传
在WEB应用程序中识别LFI
LFI漏洞很容易被识别和利用。任何一个包含WEB服务器文件的脚本,对于下一步的LIF测试,都是一个很好的切入点,例如:
t0102077ce314d3bef5.jpg (7.44 KB, 下载次数: 43)
2017-4-20 16:37 上传
对于渗透测试人员,可以尝试通过操纵文件位置参数来利用它,就像是这样的:
t01df815abf576cd588.jpg (9.67 KB, 下载次数: 59)
2017-4-20 16:37 上传
上面是为了显示出在UNIX或LINUX系统中/etc/passwd文件的内容。
下图是在一个WEB应用程序中,成功利用LFI漏洞的例子:
t0100a16c6868e121b7.jpg (175.7 KB, 下载次数: 42)
2017-4-20 16:37 上传
PHP封装
PHP的大量封装经常被滥用,有可能导致绕过输入过滤。
PHP Expect封装
PHP的“expect://”允许执行系统命令,不过,PH