XXE原理、产生、检测、危害

举报
黑色地带(崛起) 发表于 2023/02/17 17:29:35 2023/02/17
【摘要】 XXE原理、产生、检测、危害

XXE原理、产生、检测、危害

 编辑

 (日月同辉,黑暗中寻找光明)



零、推荐:

【XML漏洞专题】必备的基础知识、利用原理、构建规则 https://blog.csdn.net/qq_53079406/article/details/124360513?spm=1001.2014.3001.5502

一、简介:

XXE(XML External Entity),顾名思义,XML传输数据时,利用构造包含恶意语句的外部实体,通过XML解析去执行恶意代码



二、原理:

XML数据在传输过程中,攻击者强制XML解析器去访问攻击者指定的资源内容(本地/远程),外部实体声明关键字'SYSTEM'会令XML解析器读取数据,并允许它在XML文档中被替换,构造恶意的值,去执行

XML解析方式:DOM,SAX,JDOM,DOM4J,StAX……都可能会出现外部实体注入漏洞


三、产生的原因:

低版本php

libxml<2.9.1

设置了libxml_disable_entity_loader为FALSE


编辑



四、漏洞检测:

4.1、白盒:

4.1.1、函数/可控变量的查找

eg:

分析XML解析器设置,DOM,JDOM,DOM4J,SAX等方式对XML的解析设置

如果默认禁止使用外部实体,基本上xxe就没了


4.1.2、传输/存储数据格式类型

eg:

<user>xxx</user>

<password>xxxx</password> 


4.2、黑盒:

4.2.1、数据格式类型判断

页面存在xml调用(一般会加密)

带参数的地方,分析accept头部有没有xml格式的提交数据(eg:application/xhtml+xml)

支持xml,再测参数(类似SQL注入),POST提交代码

修改传输数据类型,寻找加密的js函数,把json改成xml,再添加xml数据

尝试,试json会不会造成xxe



4.2.2、content-type值判断

抓取数据包,看accept头是否接受xml,content-type的值是不是  text/xml  或者 application/xml,

盲猜,更改content-type值application/xml分析返回





五、危害:

攻击者会将payload注入XML文件中,一旦文件被执行,将从本地完成到各种服务的执行,也就是说,如果存在XXE漏洞,那么就能够一定程度上绕过防火墙和过滤。

— — — — — —

任意文件读取

系统命令执行

执行远程代码

拒绝服务攻击

内网端口探测

攻击内网网站

钓鱼


六、xxe绕过


相似协议替换

实体编码绕过

……


编辑



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。