讲师简介
昵称:小天之天,补天审核工程师。
专注coding、渗透测试和Java Web安全研究。
课程介绍
在本门课程中小天讲师首先介绍了XML基础,包括XXE漏洞原理、XML文档与DTD文档、内外部DTD结合文档、XML实体、以及XXE漏洞的危害会影响的范围。其次对Blind XXE漏洞进行复现,最后给出了Java版的漏洞修复策略以及有效的防范措施。
通过这门课程学习,我们可以了解到全面的XXE漏洞知识,还有XML与DTD之间的关系,以及如何挖掘并验证XXE漏洞。
感兴趣的小伙伴,识别二维码立即看课
PS:Web端看课体验更佳,看课地址:
https://www.ichunqiu.com/open/58939
课程概况
漏洞概念
XXE Injection(XML External Entity Injection),它是一种隐蔽并且经常被忽视的漏洞,它可以利用XML外部实体加载注入,执行不可预控的代码。
什么是XML?
XML是一种用来传输和存储数据的可扩展标记语言。
-
XML用于传输和数据存储;
-
HTML用于显示数据。
XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。
<!--XML声明-->
<?xml version="1.0"?>
<!--文档类型定义-->
<!DOCTYPE note [ <!--定义此文档是 note 类型的文档-->
<!ELEMENT note (to,from,heading,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>You are a good man</body>
</note>
如何发现漏洞
寻找XML输入点,比如Content-Type:text/xml,post的数据包含XML格式,如:
<forgot><username>admin</username></forgot>请求头中添加Content-Type:text/xml,或Content-type:application/xml。
同时,POST中添加payload:
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image016.gif
漏洞危害
1、任意文件读取
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image017.gif
<!ENTITY xxe SYSTEM"file:///etc/passwd">]>
<test>
<wsw>&xxe;</wsw>
</test>
通过提交自动以URI,可以读取任意文件(本地或远程)。
还可以通过DTD文档引入外部DTD文档,再引入外部实体声明,如下:
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image019.gif
以上输入有回显的情况,/etc/passwd可以直接被显示出来,无回显的情况,需要把文件外发至远程服务器,具体如下:
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image021.gif
2、拒绝服务
原理为:构造恶意的XML实体文件耗尽可用内存,因为许多XML解析器在解析XML文档时倾向于将它的整个结构保留在内存中,解析非常慢,造成了拒绝服务。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image023.gif
3、测试后端服务器的开放端口
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image025.gif
通过返回的“Connection refused”可以知道该81端口是closed的,而80端口是open的。
4、后端Web漏洞如果可以通过URL加以利用,可造成Web漏洞安全隐患。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image027.gif
5、命令执行
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image029.gif
PHP要开启PECL上的Expect扩展。
End
— 往期回顾 —
▶ 代码审计实操
▶ 浅析勒索病毒
▶ 浅析红队基础设施
▶ 红队建设之道
▶ 手机锁屏密码安全
▶ 中间人攻击
▶ 十分钟看懂隐写术
▶ 信息泄露问题
▶ 狡猾的漏洞利用
▶ CAN总线安全
力荐丨渗透测试就业班
i春秋官方公众号为大家提供
前沿的网络安全技术
简单易懂的实用工具
紧张刺激的安全竞赛
还有网络安全大讲堂
更多技能等你来解锁
本文始发于微信公众号(i春秋):XXE漏洞:易被忽视但危害巨大!
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论