XXE漏洞原理挖掘

admin 2024年4月28日10:54:01评论6 views字数 991阅读3分18秒阅读模式

XXE漏洞全称为XML外部实体注入漏洞,它发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行。

XXE漏洞触发的点出现在系统可以上传XML文件的位置,应用程序对XML输入进行解析时,没有对上传的XML文件内容进行过滤,没有禁止加载外部实体,导致攻击者可以构造一个恶意的XML文件进行上传。

XXE产生的本质原因是:

有外部实体,将数据传入服务器,而且传入的格式是XML。

服务器会将XML进行解析,解析后将内容最终显示到某一个地方。

最终显示数据的地方能够被取到。

XXE漏洞可以使用以下方法进行查找:
手动检查:对于有上传点的应用,可以尝试上传一个包含恶意XML代码的文件,然后查看是否能通过验证并触发XXE漏洞。
使用工具扫描:可以使用一些漏洞扫描工具,OpenVAS、Burp Suite等,这些工具可以自动检测Web应用程序中是否存在XXE漏洞。
代码审计:通过审查应用程序的源代码,可以找到存在XXE漏洞的代码段。特别是要注意在处理XML输入时,是否对外部实体进行了过滤和验证。
需要注意的是,XXE漏洞属于Web应用程序的漏洞,因此在进行查找时,应该针对Web应用程序进行测试和审计。同时,需要对服务器端和客户端的代码进行审查,以确定是否存在潜在的XXE漏洞。

XXE漏洞poc验证代码步骤如下:
构造一个恶意的XML文件,文件内容包含有XML声明、DTD文档声明和攻击代码。
将恶意的XML文件上传到目标服务器。
当目标服务器对上传的XML文件进行解析时,将加载外部实体并执行攻击代码,从而触发XXE漏洞。
以下是一个XXE漏洞的POC代码示例:
php
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPEcreds[<!ENTITYgoodiesSYSTEM"file:///c:/windows/system.ini">]><creds>&goodies;</creds>
在上述代码中,构造了一个名为creds的DTD文档声明,其中包含了名为goodies的外部实体,该实体指向本地的Windows系统配置文件system.ini。当目标服务器对该XML文件进行解析时,会加载外部实体并尝试读取system.ini文件,从而触发XXE漏洞。

原文始发于微信公众号(渗透测试 网络安全技术学习):XXE漏洞原理挖掘

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月28日10:54:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   XXE漏洞原理挖掘https://cn-sec.com/archives/2236856.html

发表评论

匿名网友 填写信息