js/小程序逆向 7 / 7
前言
地址:https://app.yangkeduo.com/
注意是缺口滑块,而不是点选的
就是上图这种滑块
抓包分析
先来分析第一个可疑的请求包,有个 captcha_collect
加密参数,响应猜测是图片,估计是经过处理过的一串编码,后面来分析一下
拖动下滑块触发了校验接口,参数多了个 verify_code
猜测是缺口距离
获取滑块图片
前面有个 obtain_captcha
接口返回 pictures
数组,全局搜索一下,点进 js
文件,搜索 pictures
关键词,结果不多,就全部下断点,刷新图片
成功断下,这里看不出啥,往下继续分析
主要下面有 src
属性,值调用了 Y.a.decode
函数,有点可疑,直接下断点
跟进函数,直接跳转到 return
处,这是结果已经出来了正是图片的 base64
编码,直接把这个函数复制到本地,运行一下
成功计算出图片的 base64
captcha_collect 加密参数分析
这里指分析图片接口的 captcha_collect
加密参数,其他接口的流程相同参数不同,老套路全局搜索关键词,不知道在哪里就全部打上断点
断下来跟进函数
跳到函数尾部,查看 e
参数,是一些浏览器指纹信息,接着调用了 h -> p
函数
h
函数,猜测是 gzip
数据压缩算法
p
函数有 key iv
盲猜是 aes
算法,后面进行验证
captcha_collect 算法验证
加密:aes + gzip + base64
解密:base64 + gzip + aes
按照以上思路,解密成功
悦悦
2022-05-30佬,gzip在见压缩的时候报这个错是什么原因 gzip.BadGzipFile: Not a gzipped file (b'\x08\x08')