python爬虫之某站JS加密逆向分析

admin 2023年4月9日21:41:04评论61 views字数 1829阅读6分5秒阅读模式
声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。


实现的目标:可以通过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
python爬虫之某站JS加密逆向分析

这个网站不存在分页,是鼠标下滑动态加载数据的,所以利用selenium爬虫效率低,效果也不是很好。


当然如果是菜鸟,最好还是利用这种方式


先爬一下看看,发现返回的数据是加密的,先不管他。

python爬虫之某站JS加密逆向分析

我们分析请求参数,发现是两个加密的请求参数,分别是payloadsig


如果把这两个参数去掉,或者这两个参数是错误的,则request无法返回正确的数据。

python爬虫之某站JS加密逆向分析

所以,需要对这两个进行JS逆向,还原加密算法。


经过调试发现规律如下(至于怎么找断点,怎么找到实现加密算法的位置,本篇不做介绍)。


找到了sig的地方,下断点:

python爬虫之某站JS加密逆向分析

调试截图如下(只截图了payload的方法):


Payload加密分析:

首先是payload加密,payload加密前:
{sort: 1, start: 40, limit: 20}

需要“翻页”动态加载数据,只要需要更改start即可,这个表示是开始条数,limit表示一次加载20条,比如60、80、100、120等等。

python爬虫之某站JS加密逆向分析

第1次进入e2(e) ,进去前e还是明文的payload,进去了_u_e(e)  返回t    '{"sort":1,"start":40,"limit":20}'  值没变。

python爬虫之某站JS加密逆向分析
python爬虫之某站JS加密逆向分析

接着返回e2(e)继续执行for循环,返回的值如下。这个时候,payload被加密了,但是还不是返回的值,继续下一步调试。

",x177WB:d`ym{1L$'=x10nx02x04x15p8[ '&olwx022"
python爬虫之某站JS加密逆向分析

接着到了第一次进入e1(e) 中,这个时候e就是加密后的payload传进去。返回u,就是加密的payload了。

LBc3V0I6ZGB5bXsxTCQnPRBuBwYJfnZeJCM7OXR/AH8q
python爬虫之某站JS加密逆向分析

这个是只要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脚本如下:

python爬虫之某站JS加密逆向分析
python爬虫之某站JS加密逆向分析


再次请求:

python爬虫之某站JS加密逆向分析

发现返回的值是d,也是加密的,可以使用拦截技术,获取到JS解密函数,解密d得到明文。


后面的部分解密由于某些原因就不写了,懂的!!!



关 注 有 礼



关注公众号回复“9527”可以领取一套HTB靶场文档和视频1208”个人常用高效爆破字典0221”2020年酒仙桥文章打包2191潇湘信安文章打包,“1212”杀软对比源码+数据源,0421Windows提权工具包
python爬虫之某站JS加密逆向分析 还在等什么?赶紧点击下方名片关注学习吧!python爬虫之某站JS加密逆向分析

推 荐 阅 读




python爬虫之某站JS加密逆向分析
python爬虫之某站JS加密逆向分析
python爬虫之某站JS加密逆向分析

python爬虫之某站JS加密逆向分析

原文始发于微信公众号(潇湘信安):python爬虫之某站JS加密逆向分析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年4月9日21:41:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   python爬虫之某站JS加密逆向分析https://cn-sec.com/archives/1658054.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息