浏览器js调试寻找加密函数

admin 2025年5月19日12:02:52评论0 views字数 1048阅读3分29秒阅读模式
浏览器js调试寻找加密函数

声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途给予盈利等目的,否则后果自行承担!如有侵权烦请告知,我会立即删除并致歉。谢谢

文章有疑问的,可以公众号发消息问我,或者留言。我每天都会看的。

浏览器js调试寻找加密函数

字数 449,阅读大约需 3 分钟

前言

现在对参数加密的网站越来越多,一些等保级别高的单位还会在开发编码规范里就明确对关键接口进行加密。这无疑给我们渗透测试造成了麻烦。

有的开发在写代码的时候并不是很规范,比如他在调试的时候,为了方便,通过console.log把密钥和参数密文打印在控制台了。我们根据控制台的信息就能快速定位在哪里。

下面将介绍一种简单通用的快速定位加密函数的办法。

简述

通过浏览器的开发者工具中的Network,查看发送请求包的位置,在该处下断点,根据调用栈信息,依次追栈寻找加密点。

案例分析

如下图,可以看到encryptedData的值被加密,如果要进行漏洞检测,比如SQL注入、XSS测试,获取明文参数值再测试会方便很多。

浏览器js调试寻找加密函数
d45abc0340d287e76d305704aea39621.png

打开浏览器的开发者工具——》Network,然后点击页面按钮,发送加密数据

浏览器js调试寻找加密函数
8a79af1d026ed5db9229369c2f3c2ecf.png

可以在请求包的字段中看到Initiator里有一个app.js,点击,会跳转到js代码中的发包处,再该处下断点

浏览器js调试寻找加密函数
0f016e36158d05424f5053904b71b91f.png

再次点击页面按钮,发送加密数据。如下图,可以看到成功拦截

浏览器js调试寻找加密函数
ccc1e70f0ae5da27c17d213f6b77a844.png

关注右下角的Call stack,是js代码的调用栈。一般调用加密函数的地方,就在这个调用栈对应代码的附近。

比如当前案例,加密函数就在sendDataAes附近。

浏览器js调试寻找加密函数
40acb832b6450bbbdf203df8d5fa4089.png

怎么判断这个函数就是加密函数呢?在这个函数的开始处下断点,然后点击页面按钮,发送加密数据。如果传入的参数是明文的数据,比如是你在页面输入的值,返回值是加密后的数据。那这个函数就是加密函数。

当然,现实情况可能更复杂一些,可能把加密函数拆在不同的函数里。都可以根据上述的办法进行分析。

至于如何实现在前端加密下抓取明文数据包并密文发出,可以看我之前的文章。

干货 | yakit 实现在前端加密下抓取明文数据包并密文发出

原文始发于微信公众号(进击的HACK):浏览器js调试寻找加密函数

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

发表评论

匿名网友 填写信息