仅用于学习测试,违法自负!
文章插图
这里给大家分享几点关于越权漏洞的发现方法,这类型漏洞通常发生在Web应用提供给用户基于输入的对象中,漏洞造成的影响将会致使攻击者可以绕过授权限制,访问到目标系统内其它不应该被访问到的资源或数据 。IDOR简述简单来说,假设目标网站有两个用户U1和U2,两者账户中都存储有个人文件,但只有自己才有权限查看访问到这些文件 。打个比方,也即U1只能访问到自己的账户文件,不可访问U2的账户文件 。
U1访问他自己账户中的文件blahBlah.pdf,具体链接如下:
who.com/file/23
上述链接中假设最后的数字23是与自己账户对应的一个参数,但好奇的U1用户却随手修改了这个数字参数,把它改成了50,然后发起了访问,链接如下:
who.com/file/50
但正好这一改动,U1在自己账户权限内竟然看到了U2账户的文件 。
所以问题出在哪里呢?原因在于Web应用在基于用户输入的直接对象访问机制中,缺少了对访问对象的身份验证措施 。如何来发现IDOR漏洞?其实,IDOR就像XSS一样存在广泛,只要你清楚目标Web应用的设计架构或工作流,非常容易发现 。这里我分享几点IDOR漏洞的发现经验,仅供参考 。
文章插图
在用户注册处发现IDOR漏洞在网站注册机制中发起数据包拦截,目标网站whocare.com调用了一个账户注册API,Burp捕获的账户注册请求数据包如下:
POST /analytics/index.php/plus/registerportal?user_id=43657&key=344246b382b1d70c25ea14ed6f2760c6 HTTP/1.1可以看到,在上述数据包的POST操作中包含了user_id参数,这里出于测试目的,我们把它修改为其它字符串随机值,然后服务端响应回来的消息中有了这样的提示:用户已经存在!更为重要的是,服务端响应回来的信息中包含了与该注册用户相关的姓名、邮箱、联系地址等等 。响应数据包如下:
Content-Type: Application/x-www-form-urlencoded
Content-Length: 239
Host: api.whocare.com
Connection: close
Accept-Encoding: gzip, deflate
User-Agent: okhttp/3.4.1
email=test@whocare.com&password=as&username=&firstname=tvbb&lastname=gvcz&mobile=&country=test&city=hfhdggd&birthday_full=&gender=fknefjn
HTTP/1.1 200 OK而且通过这样,我甚至可以通过暴力枚举用户参数user_id,大量获取目标网站用户信息,当然其中也会包含管理员信息 。
Date: Tue, 05 Mar 2019 12:53:30 GMT
Content-Type: text/html
Connection: close
Set-Cookie: __cfduid=dc4d54bb59b5c4a2c8501e3ed1cd5952b1551790409; expires=Wed, 04-Mar-20 12:53:29 GMT; path=/; domain=.whocare.com; HttpOnly
Vary: Accept-Encoding
Server: cloudflare
CF-RAY: 4b2c3badddb3ce21-LHR
Content-Length: 311
{"error":"exist","user":[{"id":"34666","username":"admin","firstname":"Pappu","lastname":"Rahul","email":"admin@whocare.com","mobile":null,"gender":"male","birthday":null,"country":"","city":null,"address":null,"address1":[Reducted],"postcode":[Reducted],"ip_address":[Reducted],"app_id":[Reducted]}]}
在邮件订阅列表中发现IDOR漏洞同样,我们以whocare.com为目标网站,它为新用户提供了一个订阅选项,可以通过用户邮件方式获取一些网站的最新资讯 。而在用户设置面板中,存在一个订阅取消按钮,当点击该按钮之后,它会向注册用户发送一个取消订阅的通知链接,URL如下:
who.com/deleteNewsletter/dGVzdGVybWFpbEBnbWFpbC5jb20=
仔细看可知道,它结尾包含了一个base64编码的字符串,解密后dGVzdGVybWFpbEBnbWFpbC5jb20= : testermail@gmail.com,这里看似这种动作未对请求做身份校验,所以,在此我们需要其他注册用户的绑定邮箱来进行测试,看看是否能对其他注册用户执行订阅取消操作 。
这里的一种攻击可能性为:我们要以收集大量目标网站注册用户的邮箱,然后分别把它们进行base64编码,形成字典,放到Burp的Intruder模块中,进行自动化攻击测试,这样一来,就形成了对批量用户的订阅取消动作 。这里可以综合利用上述的注册处IDOR漏洞来形成更大的威胁 。
在意见反馈的邮件转发处发现IDOR漏洞比如还是在whocare.com中,如果用户向目标网站提交意见反馈(Feedback)的数据包如下:
推荐阅读
- 网站架构设计分析及分层架构要素
- 影响网站制作价格的因素有哪些
- 什么是WordPress插件
- 我的网站真的需要云负载均衡器吗?
- 什么是域名劫持以及如何保护自己的网站
- 网站结构从哪方面优化?
- 网站优化的robots.txt使用
- 重定向网站网址的5种方法
- 克隆网站及利用 kali工具 -- setoolkit
- 搭建免费https最简单方法