JS逆向调试之动态替换

admin 2024年7月10日23:55:08评论91 views字数 794阅读2分38秒阅读模式

大部分情况下在对有js加密的网站进行渗透测试时,是需要对算法进行逆向分析Debug,获取和修改明文,再利用aotodecoder等插件实现数据包的明文接发。不过亦存在没办法直接模拟或者抽离加解密函数的情况,比如使用了自定义的加解密算法、进行了高度混淆难以分析、混杂了其他业务逻辑代码等。这时候为了快速进行测试,可以采用本文的方法,动态替换对应的JS文件进行JS劫持。

(本文首发博客:https://sanshiok.com/archive/17.html)

0x01 启用本地替换功能

这里用的是Chrome游览器做演示,F12打开开发者调试工具:

JS逆向调试之动态替换

本地新建一个文件夹用于存放js文件,选择允许:

JS逆向调试之动态替换

添加完成后,勾选本地启用覆盖:

JS逆向调试之动态替换

0x02 选择替换文件

JS逆向调试之动态替换

来到刚才新建的本地替换的文件夹中,对js文件修改,Ctrl+S进行保存即可

0x03 实例

为了更好的展示调试的效果,写了一个实例(向公众号发送:240709 ),在这个实例中,需要实现的需求如下:

  • console中打印请求的明文返回的明文
  • 可以随时在console对加解密方法进行调用

开始操作,找到请求和返回的明文数据处(这个时候可以看到现在是加载的本地保存的JS):

JS逆向调试之动态替换

打印请求数据的明文:

JS逆向调试之动态替换

打印返回数据的明文和定义加密函数为全局(看情况设置):

JS逆向调试之动态替换

保存后刷新页面,最后在console中实现了目标效果:

JS逆向调试之动态替换

在挖掘src和众测当中,碰见了很多次前端进行了模糊化处理:

JS逆向调试之动态替换

但是后端返回的数据中存在未模糊的情况,利用这种方法后,直接在console进行查看明文是否存在敏感数据即可:

JS逆向调试之动态替换

就靠这一招已经到手了几K的奖金了:

JS逆向调试之动态替换

0x04 完结

这样操作后就不用每次都在对应地方打断点进行调试获取明文数据了,在堡垒机测试当中会有奇效。这里将加解密等函数进行全局定义后,可以配合之前的文章进行一个RPC组合拳,食用效果更佳。

原文始发于微信公众号(三十的安全屋):赏金猎人|JS逆向调试之动态替换

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

发表评论

匿名网友 填写信息