说实话,在写这篇博文前,我很纠结,担心会不会被查水表。由于已经和APP所属的公司客服沟通过贵公司的APP存在很严重的安全漏洞,但是得到的答复很敷衍,所以在这里公开分享自己的破解过程(以下部分内容由于涉及到隐私以及相关用户信息所以做了打码),纯粹为了技术探究,并引起相关公司的重视,切勿恶意根据文章内容肆意破坏相关单位权益。

相关工具:
charles,google浏览器

1.通过charles抓到app相关页面,抓取过程省略,下面放下已经写好的代码片段

其中抓取到用户排行榜的页面,话不多说,直接用google浏览器->F12->查看返回的数据结构和信息

是谁给了你这么大的勇气直接明文返回了用户的这么多信息。通过分析,用户的pwd即用户的密码使用md5加密的,虽然我们都知道md5加密是不可逆的,但是现在网上很多解谜库,大概率可以逆向破解成功。直接放图

用户的手机号和密码都掌握了,直接可以登陆app,不过没有登陆过app,怕查水表,就不演示了。
上面还只是初步的探索了一下,就很容易的窃取到了用户的相关敏感信息。
重头戏来了。
接下来分析了这个页面所加载的js文件,发现app前端后端通信所用的加密方式竟然是AES-128-ECB,且直接写明了加密所需要的加密密钥

这项目是外包出去的吗?
获取到了密钥之后,接下来就可以通过逆向解谜前端传给后端的参数了,通过上面charles抓取到的相关接口,我随意找了一个用户登陆的接口,通过密钥,逆向获取到了前端的明文传参,下面是我临时写好的模拟传参

通过测试,是能够模拟app用户登陆的。那接下来这个app的所有的接口我都可以进行模拟了。目前已测试了app很多功能都可以进行模拟,说句夸张话,可以模仿这款app的ui,使用这款app的所有功能模块进行开发了。
下面是我模拟该APP的邀请新用户注册后返回优惠券的功能:


总结:用户的信息安全是一个企业的重中之重,如果一个企业的用户信息能这么容易的被窃取,那么这个责任在于谁呢?仅已此博文能够得到相关企业的重视。