萌新小白,看了一堆教程帖子,手痒想动手实践一下,所以去豌豆荚里面随便下了个APP分析一下,顺便混点积分,技术不到位,还请各位大佬轻喷
首先开个抓包抓一下链接,使用手机号+验证码方式登录,点击登录发现手机号居然直接明文作为请求链接后缀,code就是验证码,然后数据也全部都在请求头里面多请求几次,nonce、did、sign这些参数是动态的,所以我们需要分析这些参数
拉APP使用jadx打开,发现没有壳,刚刚好,不需要另外的脱壳,直接搜索参数运气真的不错,搜索出来的参数的指向就一个,点进去发现,发送参数携带的请求头全部都在这
这个参数实现的逻辑就短短几行,直接扔给AI分析一下 总结,就是生成一个32位的随机字符,直接用python实现其中的功能
did的结果是来自g0.b,直接hook一下,结果没有任何的输出???(有没有大佬晓得原因的),没办法,只能继续分析,a是关键函数,剩下的两段代码一个是转换一个是取值 a函数进去之后,看到了关键字符串MD5,那这个很明显就是计算MD5的值,hook这个,参数和返回值都有 直接拉取MD5计算一下,就普通的MD5,就差这个参数是怎么来的了 往回查查,a函数的参数来源于b函数的str2参数,而str2又是a10来的,看看a10是怎么来的,回到最初的地方,首先在上方定义了a10的字符串变量,然后再下方进行判断赋值,老样子,扔给ai看看 总结:先判断你是什么登录,然后再具体赋值,我这个did是数值是S开头的,那就是走情况3,随机生成一串随机数,最终当作参数传递给了g0.b,然后又在b函数里面把随机数进行MD5转换,再取后22位然后拼接S,did的结果就出来了
传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!
wantwill 能给出APP具体名字
zylrocket 你写的很清楚呀,证明你也真的很闲,哈哈