挖洞经验 | 看我如何接管OLX的每一条广告

在这篇文章中,我将跟大家分享关于“不安全的直接对象引用”(IDOR)攻击的相关内容。没错,正如本文标题所写的那样,我在OLX所托管的网站上发现了一个IDOR漏洞,并将其披露在了HackerOne上,因此我觉得是时候写一篇Write-Up了。

背景内容

OLX托管着多个国家的LetGo网站,其中还包括荷兰在内。LetGo是一个类似eBay的网站,你不仅可以在LetGo上购买新的东西,而且还可以帮你处理掉不要的二手物品,有些类似天朝的X鱼。

通过研究之后,我在这个网站上发现了一个IDOR漏洞,这个漏洞不仅能够允许我接管他人所上传的广告信息,而且还可以修改价格和描述,你肯定想象不到我当时是有多兴奋!虽然修改操作还需要进行一个人工审批过程,但对我来说至少能实现就行了。一般来说,将价格从40欧元改成35欧元都是可以通过的。除此之外,我的账号通过了几次人工审核之后已经被添加到白名单之中了,因此以后就都不用审核了。

因为网站没有实现频率限制,而且网站服务所提供的API还可以列举出所有的广告,因此我们也许可以编写一个脚本来自动化实现所有操作。比如说,列出所有的广告,然后接管每一条广告,并修改对应的价格。

当然了,我肯定不会真的去这样做,我也不需要去证明这个漏洞的严重性或者给网站造成经济损失。所以当我发现了这个IDOR漏洞之后,我便立刻报告了该漏洞。需要注意的是,我的PoC用我自己的多个测试账号,我并没有去接管其他人的广告,毕竟安全第一嘛!

如何找到了这个IDOR漏洞

在得到了OLX的允许之后,接下来就是披露漏洞细节的时间啦!

首先,我们需要设置一个代理来查看iOS/Android端App的流量数据。这些流量是经过了SSL加密的,但这并不重要(导入CA BurpSuite规范)。但是现在有的App实现了SSL Pinning特性,因此BurpSuite CA就没有效果了,但是你可以通过禁用(Unpin)这种特性来绕过这种安全保护层。其中一种方法是通过对App进行逆向分析和检测来实现,另一种方法就是在系统设置中禁用。

现在我手上有一台已越狱的iPad(安装了Cydia)和一台Android手机(安装了Xposed模块),两台设备均禁用了SSL Pinning。这样一来,你就可以使用类似BurpSuite这样的代理来拦截任意一款App的流量了。除此之外,你也可以安装Android模拟器来实现整个操作,推荐genymotion或android stuidio。

当你在使用iOS或Android端App的过程中,我们可以通过拦截API调用信息来了解关于API调用的信息,并指导如何重放调用过程。

设置测试账号:

账号#1:

1. 使用令牌‘111111’发布一个新的广告(返回ID,测试场景中ID为888888)。 2. 等待审核通过。 3. 审核通过之后将其发布到网站上。

账号#2:

1. 通过调用搜索API来获取广告列表。 2. 通过发送POST调用来攻击目标广告,测试场景中我们选择攻击刚发布的广告,ID:888888。 3. 接管广告瞬间就可以完成,现在这个广告已经属于账号#2的了,而不是账号#1的。 4. 等待审核通过。 5. 审核通过,并将修改后的广告发布到网站上。

在使用账号#2发动攻击的过程中,涉及到两个API调用:GET /i2/ajax/ads/(用于获取ID)和POST /i2/newadding/(用于接管并修改广告)。

GET调用可以列举出所有的广告信息,其中包括ID在内,具体如下所示:

POST调用(即实际的攻击过程/IDOR)如下所示:

需要注意的是,我只是将我拦截下来的GET调用和POST调用重放了一次,然后用账号#2的令牌替换掉了账号#1的令牌。

在这里我需要提醒大家,在进行类似的分析操作时一定要使用测试账号,而且不要造成什么实际的破坏,在动手之前可一定要考虑清楚啊各位,这可不是在玩游戏。

积累经验

1. 在选择参与漏洞奖励计划时,一定要选择记录良好的计划,因为如果你不谨慎选择的话,你的努力很可能会“付诸东流”。

2. 当你在发现一个安全问题时,你一定要掌握那个攻击的“度”。在遇到问题是别气馁,继续努力就行了,有什么难题就记录下来,去社区请教大神就好。

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2017-11-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏tiane12

由Google公共API被屏蔽导致网站加载速度变慢

26630
来自专栏杨建荣的学习笔记

总结nmon的诸多优点 (r4笔记第78天)

nmon在平时的工作中可能会多多少少接触到,从sourceforge上能够下载到nmon的包。可能是有着IBM的血统,这个工具对于AIX的支持力度要大得多。 当...

36780
来自专栏杨建荣的学习笔记

MySQL主从信息的元数据维护

前几天专门花了时间开始做元数据的稽核,其实这只是一个初步的开始,也算是才开始走上正道。

13230
来自专栏云计算D1net

如何用渗透测试计划锁定你的云?

渗透测试是一项旨在确定和解决任何黑客可能利用漏洞的IT安全性措施。就如同传统数据中心广泛采用这一测试方法一样,很多企业的IT部门也在他们的公共云计算环境中使用着...

30880
来自专栏娱乐心理测试

关于小程序的一些基本常识

    a. 如果小程序需要与你的服务器进行数据交换,那么你就必须注册域名,即使是开发环境也需要;

14330
来自专栏数据订阅

腾讯云数据库(TencentDB)SaaS服务简介

传统企业在建设数据库初期,不仅建设服务器,还要保证数据库能够稳定和可靠的运行。当业务数据增长到一定大小的时候,就需要增加服务器CPU及内存以及磁盘相关资源。为了...

1.5K630
来自专栏小黄人打代码

你想拥有自己的微信公众号吗?戳这里

19540
来自专栏企鹅号快讯

新人分享系列-蘑菇街主搜Dump拼装服务演化

花名:长文 部门:算法中心搜索业务组 入职时间:2016年 主要从事蘑菇街搜索引擎实时增量商品信息补全以及搜索业务接入 一、引言 搜索引擎作为电商平台的主要入口...

413140
来自专栏架构师小秘圈

淘宝高可用高伸缩高性能框架之实现

一,应用无状态(淘宝session框架) 俗话说,一个系 统的伸缩性的好坏取决于应用的状态如何管理。为什么这么说呢?咱们试想一下,假如我们在session中保存...

50680
来自专栏FreeBuf

某搜索引擎Self-XSS点击劫持案例分享

在AI横飞的今天,网站页面不挂个聊天机器人都会觉得low,笔者在某搜索引擎的页面上就发现了这样一个聊天AI,无聊一试发现了一个xss。

12630

扫码关注云+社区

领取腾讯云代金券