文章总结: 本文详细分析了某数据网站JS加密逆向过程,重点解析了payload和sig两个加密参数的生成机制。payload经过两层加密处理,sig则是payload拼接常量后MD5加密的大写结果。文章提供了完整的Python实现方案,包括加密参数生成和响应数据解密方法,适用于类似前端加密场景的爬虫开发。 综合评分: 78 文章分类: 爬虫,WEB安全,逆向分析,安全工具,实战经验
Python爬虫之某站JS加密逆向分析
蚁景网安
2026年4月17日 16:31 湖南
在小说阅读器读本章
去阅读
以下文章来源于潇湘信安 ,作者程哥
潇湘信安 .
一个不会编程、挖SRC、代码审计的安全爱好者,主要分享一些安全经验、渗透思路、奇淫技巧与知识总结。
实现的目标:可以通过JS加密逆向后,得到加密参数,请求获取数据。此方法同样适用于被前端JS加密的用户名、密码爆破。
被爬取的网站:某某数据网
https://www.***.com/industry/newest?from=data
JS加密逆向分析
首先,分析获取数据的API。抓包,发现是:
https://www.***.com/api2/service/x_service/person_industry_list/list_industries_by_sort
这个网站不存在分页,是鼠标下滑动态加载数据的,所以利用selenium爬虫效率低,效果也不是很好。
当然如果是菜鸟,最好还是利用这种方式。
先爬一下看看,发现返回的数据是加密的,先不管他。
我们分析请求参数,发现是两个加密的请求参数,分别是payload和sig。
如果把这两个参数去掉,或者这两个参数是错误的,则request无法返回正确的数据。
所以,需要对这两个进行JS逆向,还原加密算法。
经过调试发现规律如下。
找到了sig的地方,下断点:
调试截图如下(只截图了payload的方法):
Payload加密分析:
首先是payload加密,payload加密前:
{sort: 1, start: 40, limit: 20}
需要“翻页”动态加载数据,只要需要更改start即可,这个表示是开始条数,limit表示一次加载20条,比如60、80、100、120等等。
第1次进入e2(e) ,进去前e还是明文的payload,进去了_u_e(e) 返回t ‘{“sort”:1,”start”:40,”limit”:20}’ 值没变。
接着返回e2(e)继续执行for循环,返回的值如下。这个时候,payload被加密了,但是还不是返回的值,继续下一步调试。
",\x177WB:d`ym{1L$'=\x10n\x02\x04\x15p8[ '&olw\x022"
接着到了第一次进入e1(e) 中,这个时候e就是加密后的payload传进去。返回u,就是加密的payload了。
LBc3V0I6ZGB5bXsxTCQnPRBuBwYJfnZeJCM7OXR/AH8q
这个是只要payload不变,加密值就不变,还是相对比较简单的。
sign加密分析
sign的值是把加密后的payload值加上常量_P拼接后,作为参数,传到sig(e)中去,payload+_P如下:
LBc3V0I6ZGB5bXsxTCQnPRBuBwYJfnZeJCM7OXR/AH8qW5D80NFZHAYB8EUI2T649RT2MNRMVE2O
这里的e就是加密后的payload,而sign调用的方法是md5(e + _p).toUpperCase(),结果是:
1268D4D682CF9D0C6C3CB4D6E4C3C87F
new t(!0).update(n)[e]() 是payload + -p这个常量:t.prototype.update = function(e) 实际就是这个函数
他又调用了hex函数 finshed函数 调用了 hash函数
LBc3V0I6ZGB5bXsxTCQnPRBuBwYJfnZeJCM7OXR/AH8qW5D80NFZHAYB8EUI2T649RT2MNRMVE2O
跟踪分析发现,就是一个普通的md5加密函数,然后转换成大写。这个就可以不用JS实现,直接python实现MD5加密。
使用Python去实现以上两个参数的加密,修改原来的python脚本如下:
再次请求:
发现返回的值是d,也是加密的,可以使用拦截技术,获取到JS解密函数,解密d得到明文。
学习网安实战技术,戳“阅读原文”
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:蚁景网安 《Python爬虫之某站JS加密逆向分析》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论