一道CTF针对XXE漏洞的练习
题目链接:http://web.jarvisoj.com:9882/
目的很明确获取/home/ctf/flag.txt的内容
一般读取目标机的本地文件都会用到file协议。
思路:
那么思路一:文件包含;
思路二:ssrf漏洞,这个成功率不大;
思路三:xxe漏洞,再没看源码的情况下试了一下,发现可以。
验证:
访问题目链接
随便输入,输入url发现都没有什么回显或者跳转
那么直接burp抓包
我们把content-type改成application/xml的类型,然后下方就可以写入xml代码,先用dtd内部注入看一下能执行不
发现可以成功执行,外部实体注入的话这里没有服务器,不能够测试,那么直接外部注入看是否成功
发现可以读取文件,那么直接读取home/ctf/flag.txt内容
flag读取成功!
也可进行源码分析
发现是AJAX异步传送数据
在一般的异步网站都会有异步数据与服务器的交互,一般传送数据为json但如果将传送的数据格式改为xml。有很大的可能服务器会解析你异步上传的xml脚本执行想要干的事。