记录一道超简单的xxe的题。
打开后发现是这样的,因为题目中有提示了xml,自然想到了xxe,没去想sql注入那些。f12啥发现也没有,果断抓包。
很熟悉的标签闭合。因为是第一次做xxe的题,网上也去搜了很多xml的语法。这篇文章讲的挺好
浅谈XML实体注入漏洞 - FreeBuf网络安全行业门户。最开始我以为xml的语言必须有xml声明才可以,就一直想不通输入进去的数据根本没有xml声明,他怎么解析为xml文件的。然后发现
这样就好理解了。Repeater里面send一下看看
发现admin是可以回显的,证明传进去的xml被解析了的,但只有admin有回显。那我们的思路只需要引入外部实体读取我们想要的东西,让admin回显出来。看看可以不。
构造payload
<?xml version="1.0" encoding="utf-8"?> <!--此行可以省去-->
<!DOCTYPE note [ <!--定义此文档是 note 类型的文档 可以改成自己
想定义的类型-->
<!ENTITY zzz SYSTEM "file:///flag"> <!--声明一个外部实体-->
]>
<user><username>&zzz;</username><password>123</password></user>
* 在XML加入DTD声明
<!DOCTYPE root[]>
得到flag。