JS断点调试与逆向干货心得

admin 2024年9月3日12:19:12评论40 views字数 1684阅读5分36秒阅读模式

22年写的文章,也不算正式的文章,小心得而已。前两天找到了,又想起之前很多人问过我js怎么跟,放出来抛砖引玉一下。

. . . * . * ☄️. * . * . 🔆 .* . * . 🧶 * . * . . .

1 对于WEBPACK的加密

这个一般能走捷径,而且WEBPACK其实并不算重度混淆,也不会给你打debugger;,想跟是可以跟的,就是要耐心。

捷径

因为一般WEBPACK的主要目的并不是反渗透,所以会使用已经开发好的加密库,例如JSEncrypt。这种情况下可以通过全局搜索AES.encrypt(encrypt,enc,key,crypto)函数找加密函数。比如下图:

JS断点调试与逆向干货心得

然后下断点,查看传进来参数的格式,观察一下除了待加密文本之外的其他参数(如果有的话)是否是不变的。如果其他参数变化则需要进一步跟踪。
还有一种方式是找密钥位置,找这种:

JS断点调试与逆向干货心得

找到之后通通下断点观察参数就完了,实在找不到才挨个调试:
打开控制台重复操作,然后在网络这边找到对应的请求,挨个堆栈先打断点缩小位置之后单步观察参数什么时候变化:

JS断点调试与逆向干货心得

2 找到加解密函数之后

此时还不能直接在控制台中调用(好像是作用域的问题,不太清楚,反正挺烦人的),需要在函数执行中(也就是你打个断点等它中断)控制台上才能够调用这些函数。
中断的时候直接调用找到的加解密函数或者直接改参数值都行:
这里双击参数值就能改:

JS断点调试与逆向干货心得

这里(控制台)执行之后会直接给返回值:

JS断点调试与逆向干货心得

事实上这里想办法用插件做一个批量请求然后保存或者用这些返回值发包的功能更好,就是不知道插件能否获取和控制台一样的上下文。这里已经解决了,感谢自己写了点能用的玩意:

https://github.com/AugustineFulgur/processorRemote

3 如何应对无限debugger;

无限断点通常用来防止渗透开开发者工具,往往F12一开糊你一脸断点,这种情况下别说自己打断点调试了,就连看看源代码或者看看审查元素都不好做,非常麻烦。
当然,面对这种debugger还有一种方式是反反调试,也就是避免被检测出开启了调试。但是感觉比较困难,毕竟调试的“动静”太大了,就算能够避免改写浏览器宽高、覆写浏览器全局变量,也没办法模拟代码执行的时间差,所以干脆就不从这个点下手了。

最无脑的方式

如果只要看代码不自己打断点,就不用折腾了,直接点这里,禁用所有断点:

JS断点调试与逆向干货心得

普通的debugger

指的是不写在VM里的debugger,这种也是好绕过的,只需要右键点击忽略此断点即可,如图:

JS断点调试与逆向干货心得

debugger in VM

一般在三大运营商的WAF里看到。这种VM里的代码不能添加忽略,同时一般用上这种措施的JS也混得像狗屎一样完全不能读:

JS断点调试与逆向干货心得
JS断点调试与逆向干货心得

这种写在VM里的debugger我也实在没有什么好的解决方法。目前有两个“可以试试”的:

  • • 在debugger中断的时候查看堆栈,将最近的一个堆栈函数置为空函数。

这个方法基本上能跳debugger,副作用就是,如果这个函数里有其他有效值,前端的运行就会出现问题。并且刷新之后需要重新操作。

JS断点调试与逆向干货心得

JS断点调试与逆向干货心得

  • • 直接抓包将js中所有debugger改为空。

这个方式比较简单粗暴,但是手工难以实现。我们制作一个BP插件来完成这个功能。
https://github.com/AugustineFulgur/DebuggerKiller
但是如果传入的字符串被加密又要陷入解加密->解DEBUGGER的循环- -。

ETC:X树WAF

请看下面两张图:

JS断点调试与逆向干货心得

JS断点调试与逆向干货心得

这是个双层嵌套VM,断点暂停在第一张图的第二层VM里。
由于这个WAF是将所有函数名都混淆(包括自带函数如eval),可以推测这里是使用混淆后的EVAL函数执行被加密的字符串。
这里将_$GS[651]赋值为空然后放断点即可。

. . . * . * 🌟  * . * . . .

由于很多人问我微信群的事情,所以我建了一个小微信群。现在可以在公众号菜单里选择合作交流->交流群获取交流群二维码,希望大家和谐交流,为更好更友善的行业环境贡献自己的力量。

如果喜欢我的文章,请点赞在看。网安技术文章、安卓逆向、渗透测试、吃瓜报道,尽在我的公众号:

原文始发于微信公众号(重生之成为赛博女保安):JS断点调试与逆向干货心得

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月3日12:19:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   JS断点调试与逆向干货心得https://cn-sec.com/archives/3122091.html

发表评论

匿名网友 填写信息