Yakit热加载配合js逆向的进阶用法

目录

纯js代码逆向

入口定位

逆向

yakit热加载爆破

webpack逆向


今天分享两个前端js逆向思路+yakit热加载登录爆破的小技巧。

纯js代码逆向

目标:js逆向破解sign签名的签名算法,并使用yakit爆破。

通过抓包分析发现,用户名未加密,而密码使用了 MD5 加密

使用密码字典进行 MD5 加密尝试爆破,但所有响应均显示‘验签失败’,表明网站采用了签名验证机制

我们可以分析JavaScript代码来破解sign字段的生成逻辑,然后自行生成有效的sign值进行爆破。

入口定位

这里可以直接搜索:password、username、sign等关键字来发现的相关js代码

发现生成sign字段的位置

逆向

在 a.sign 方法处设置断点,输入任意账号、密码和验证码,点击登录进行调试。

此时sign值还是空的

逐步执行代码,观察到执行该函数后生成了 sign 值,确认这个函数就是用来生成签名的函数

然后查看这个函数做了什么操作

函数中有t、b等参数,还返回了一个p()(e),在控制台打印一下,看看它们具体是什么

观察发现:b是定值,而t包含了一个时间戳还有我们输入的验证码、账号密码

最后返回了一个p函数,目的是将传入的值进行md5加密

可以知道sign的加密方式就是对时间戳、验证码、账号和md5后的密码组成的字符串进行md5加密

知道了加密方式,我们可以使用它自动生成签名来爆破账号密码了

yakit热加载爆破

通过热加载动态生成 sign 值并发送请求


encode=func(password){
  key="20241215185232"
  code="kzcs"
  username="admin"
  password=codec.Md5(password)
  b="6D5A582B437371376E586F5773785730647461476B386342664A3049484F5656346F3278546E46735A5531453669514C5843415572415A6965585457334D542F"
  data="key=" + key + "&code=" + code + "&username=" + username + "&password=" + password+"&"+b+"&"
  sign=codec.Md5(data)
  return {"username":username,"password":password,"rememberMe":false,"code":code,"key":key,"sign":sign}
}

使用时直接调用该函数即可

这次返回的结果是“用户密码有误”而不是“验签失败”,说明我们已经成功逆向了,可以直接进行爆破。

webpack逆向

目标:js逆向破解密码的加密方式,并使用yakit爆破

找到相关请求,发现密码进行了加密

逆向值定位,直接全局搜索,发现了一个encrypt函数,打个断点调试一下看看

在控制台打印输出,判断l.encrypt(t, o, n)就是加密密码的函数

既然是l.encrypt,那我们只需要找到l是什么就行

往上翻代码,发现:

典型的使用了webpack加载器,加载器函数为_()

跟踪函数发现了加载器代码

全部复制到loader.js文件中

第一次运行报错

这里的self.__webpack_public_path__等同于window.__webpack_public_path__

我们这里将self改为window(因为代码的其它地方使用的window),并将其赋值为全局变量:window = global;

定位437函数

复制整个代码至mod1.js

解决报错+补环境

然后在loader.js中添加如下代码打印输出:

正常打印

现在既然我们已经得到了l,直接调用它的encrypt函数即可

copy上面参数的值(t即为我们输入的密码)

成功打印加密后的密码

图片

那像这种,使用webpack加载器逆向的代码 怎么使用yakit热加载批量爆破登录密码呢?

删除多余的代码并将所有代码整合到了一个文件,通过yak语法合成了一下

可以在这里调试运行一下

图片

调试好后,使用热加载,发现可以正常生成加密后的密码

图片

然后爆破即可

图片

在Python爬虫逆向进阶中,有许多技术和工具可以帮助实现逆向操作。其中一个重要的工具是Selenium。Selenium是一个用于自动化浏览器操作的工具,它可以模拟用户在浏览器中的行为,如点击、填写表单等。通过使用Selenium,可以实现一些需要模拟用户行为的爬虫任务,例如登录网站、获取动态页面的数据等。在逆向方面,Selenium还可以帮助我们解密一些加密的参数、破解一些验证码等。除了Selenium,还有其他一些工具和技术可以用于Python爬虫逆向进阶,如使用JS解密、破解cookie、破解token等。这些技术和工具可以帮助我们更好地理解和分析网站的加密算法,从而实现一些逆向操作。总的来说,Python爬虫逆向进阶是一个非常有挑战性但也非常有趣的领域,需要我们不断学习和探索新的技术和方法。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [JSCrack:Python爬虫进阶 JS 解密逆向实战](https://download.youkuaiyun.com/download/weixin_42123191/18184314)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Python网络爬虫进阶教程.pdf](https://download.youkuaiyun.com/download/dwf1354046363/20818516)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值