首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

跟zseano大牛一起做漏洞赏金猎人系列教程之教程二:不安全的直接对象引用

欢迎关注:07v8论安全,技术干货等你来

这是07v8的第2篇技术文章,希望对你有用

跟zseano大牛一起做漏洞赏金猎人系列教程之:不安全的直接对象引用

作者:@zseano

翻译:cnRay

* 本文参与双dan投稿活动

本系列教程编译自漏洞赏金项目大牛@zseano的博客:https://zseano.com

@zseano是一位来自英国的安全研究者,在漏洞赏金平台Bugcrowd有着不错的成绩(目前排名第2)。他擅长Web渗透测试,目前也活跃在Hackerone和Synack等平台。他自己这样说道:我喜欢帮助别人,因为每个人的目的都是不同的,所以我觉得跟他人合作来获得一些很酷的新想法是非常有趣的。我对保护这个互联网世界充满了热情。

个人觉得@zseano真的挺棒的,首先技术实力没得说,其次能够把好的想法以及自己的一些经验分享给大家,不仅符合黑客的侠义精神,还能推动大家一起做好安全这件事,为他点赞。

下面是一些@zseano写的帮助其他研究人员挖掘漏洞的教程。 这里面讨论了各种主题,例如通过FacebookOauth和公共区域更改开放的URL重定向到账户接管,以发现IDOR(不安全的直接对象引用)漏洞。他本人计划发布更多教程,所以感兴趣的伙伴请记得常去访问他的博客哟。

在过去3个月里,我光是用IDOR漏洞就提交了7份可能导致2亿5千万细节泄露的报告,这篇文章将讲述整个过程。

一、 首先,检查出现IDOR最常见的这些地方

1退出链接

有时候仅包含一个userid参数就能退出,而且有时候会泄露用户邮箱地址。这能够在他们发给你的邮件中找到!

2 移动APP

我的发现有80%都是来自移动APP。大多数移动APP使用一个简单的API系统来使用户登录并显示他们的信息。然而很多API仅凭一个userid字段就会将所有的信息泄露给你。

3 更新账户设置

有时候当你更新账户设置,他们会发给你一个user_id字段,修改这个值会导致其他用户的资料被修改。

4 重置密码

同上。

5 Google dorking或robots.txt

在查找端点时,Google dorking和robots.txt适用于一切。退出、api系统端点的Dork(比如“getuser”)。

二、太棒了,我发现一处IDOR!那么,接下来该怎么做呢?

其实,每个IDOR案例都不同,所以是很难有一套标准来告诉你“这样做,那样做!”那么接下来我将通过我的实战经验以及我是如何克服重重困难的技巧来完成这件事。

1退出链接包含加密ID

是的,总是看到这个。有时候他们可能是一组guid(c9d18ce3-e58e-4e73-91a2-f614e0312eb1),一组纯数字的userid,或者其他的东西。当浏览其他用户资料或者发送消息等的时候,检查下这些可能会泄露信息的地方。

这里有个例子是这样的,你可以邀请一个用户加入进来,而且你是他们的推荐人。访问/api/ref?user=这个端点时,服务器会返回这个用户的guid。那么我现在需要做的就是抓取所有用户的用户名,访问端点来获取guid,然后访问/api/user?guid=来获取这些账户的所有信息。

这里我能给你最关键的建议就是找到各种可能泄露用户id或guid等的方法。

2测试移动APP!

大多数人都只测试Web端程序而没有测试移动客户端,所以他们错过了很多有趣的东西。使用burpsuite来监听手机流量相当简单,但是以防有些人不会,这里我给出一个大概的方法:

- 打开Burpsuite并依次点击“Proxy”->“Options”,然后interface设置为*,就像这样:

- 获取计算机的本地ip(在Windows上是ipconfig)并修改手机上的wifi代理设置。

- Server就是你的计算机本地ip,端口为8080(见上一张图)。现在在你的手机上访问http://burp/安装https证书。

-现在你的手机可以记录移动端的请求了(只要没有SSL封锁,许多人都卡在这里了),运行APP并注意观察:

登录,注销,退出,更新信息,查看你的账户信息(比如当你修改邮箱或者密码时,服务器可能会查询一个端点并返回你的信息),修改密码等。

疯狂的测试APP中的每一个功能!:D

常见的绕过技巧?

我真的无法给每一个IDOR“过滤器”提供“绕过技巧”建议,因为IDOR无非就是向服务器发送大量的其他user_id并期望它返回这些用户的信息。所以我唯一能给的建议就是同时测试这些端点是否存在SQL注入!

07V8 字温说

IDOR,不安全的直接对象引用。作者在文中给出了可能存在IDOR的场景,以及在发现IDOR时应该怎么进一步处理。对于IDOR的过滤器,他也提出了检测是否存在SQL注入的可行性建议,希望大家有所收获。感谢作者zseano和译者cnRay的分享,以及对07V8的支持,此系列教程会持续更新,请继续关注!

更多干货,敬请关注

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171226G0SO9G00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券