【原创】掌上高考专业分数线js逆向
需求分析:爬取掌上高考每一年的专业录取分数
声明:本文章只用于学习研究,禁止用于但不限于商业用途、批量爬取
抓包
因为换页要求登录,所以我们打开开发者工具以后点下一年就会重新发数据包
分析后发现这个数据包就是请求的数据,返回数据和请求包都有加密,请求包里有个signsafe参数
分析请求包
ctrl+shift+f全局搜索signsafe,发现有两个js文件包含signsafe
先点开最后一个看,格式化以后继续搜索signsafe,发现uri是sendsmscode的,继续看看另外一个包(猜测:算法应该一样的,直接扣这个应该也可以)
发现只要带有signsafe的都是p赋值的,直接在p赋值的地方打上断点,然后继续发送请求包分析
认真看一下js代码,发现是url进行了HmacSHA1加密,密钥是常量D23ABC@#56,直接使用python改写
signsafe加密代码
1 | import base64 |
结果和网站js加密的一致,还有一个c()(g),盲猜md5,结果猜对了
加了md5以后结果和网站一致,signsafe参数逆向结束,这里不提供爬虫完整代码
返回数据分析
看响应包应该是aes加密,我们先搜搜aes解密的特征(如果有混淆就无效):AES.encrypt、aes.encrypt、AES.decrypt、aes.decrypt
很荣幸我们搜到了,进去看看是不是解密的地方,decrypt是解密,encrypt是加密, 別搞混了
看到这代码,熟悉的味道,这肯定是webpack,之前看过一篇自动扣webpack的文章里面有工具,我忘记收藏了,度娘一波
由于js解密代码6万多行,就不贴代码出来了,需要的可以留言,仅供学习研究!!!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 一直小白!
评论