前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一次被告知泄露了“小米商城秘密”的App 渗透实战

一次被告知泄露了“小米商城秘密”的App 渗透实战

作者头像
用户1631416
发布2019-09-29 14:26:16
9310
发布2019-09-29 14:26:16
举报
文章被收录于专栏:玄魂工作室玄魂工作室

-----------------------------------------------------

最近对自家公司的业务app做了自查测试,发现的一个问题,以及测试过程所遇到的坑,记录下来。

1,首先在手机wifi里设置代理,将手机的流量都导入到导入到电脑的burp里。

2,先抓取涉及到目标app的流量,不出意外,流量全部做了加密(要都是明文,也就没有记录的意义了^_^).

3,一看加密流量,就很自然的接上frida,查看加密的流量内容,并尝试使用burp的插件,解密流量,尝试修改参数,再进行加密,再次提交。

启动frida服务,并设置与电脑联调。

抓取加密流量

查看对应的加密流量里解密后的信息

4,因为惯性思维,导致在这里遇到了此次测试最大的坑!想当然的以为所有的加密流量都是由app封装的,逆向了apk之后,查找所有涉及到加解密的函数,一个一个hook查看,发现这个app,一部分流量是经过了公司内部的加解密服务,可是有一部分流量,无法hook到。

无法hook到的加密流量(可能老司机们一眼就能看出来问题所在,可我这个小白,在这个困住了好久 --!)

5,经过反复查看流量的上下文,发现hook的流量是从另一个接口发出的,单独查看这几到这个接口的流量,发现这些流量是通过js加密的。。。。

使用的加密方法以及秘钥,已经明明白白的写在了js文件里了。。。。

6,按照js里写的加密方法,找了一个在线解密的网站,通过选择加密方法,填入秘钥,就可以解密出加密的数据。

https://blog.zhengxianjun.com/html/tool_crypto_aes.html

查看解密后的流量,其中一个phoneuuid得到了重点关注(关注的原因,只是因为经验所致,查越权,基本上都是重点关注这些涉及到id的参数)。

7,使用这种方法,将这个接口交互的流量都进行了查看,发现“管理收货地址”这个接口,可以查看到我先前设置好的收货地址信息。

8,修改提交参数,把phoneuuid改成另一个测试账号的id,发现可以查看到另一个账号的里设置的收货地址信息,坐实了此接口存在越权的漏洞。

(请原谅这些厚厚的马赛克。。。因为这些地址,是同事家的真实地址)

8,以上验证方法需要在3个不同的站点进行转发,效率太低了,就用Python按照js的加密方法,参考网上的代码,造了了一个轮子,可以输入明文或者密文,直接显示最终的结果。

按照phoneuuid的格式,随机制造数据,使用这个脚本做加解密转换,就可以遍历其他人的收货地址信息。

后记:

与开发同事沟通,说此phoneuuid是由后端进行aes加密生成的,apk文件里也不包含此加密的key,但通过更改id,就能查看其它信息,这点的确是存在越权的问题。

另外,还建议增加phoneuuid的长度,现在是16位的16进制字符串,但理论上,还是可以造足够大的数据来进行遍历。当然,如果权限那块做好的话,这个块应该就不存在问题了。

-----------------------------------

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玄魂工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档