前端JS加密对抗由浅入深-1

admin 2024年1月5日16:54:25评论21 views字数 851阅读2分50秒阅读模式

前言:

本文主要讲解,针对前端加密数据传输站点,如何进行动态调试以获取加密算法、密钥,本次实验不涉及漏洞挖掘,仅为学习演示,环境为本地搭建环境


此次站点加密方式为AES加密方式,现如今越来越多的站点使用前端数据加密,或AES、或RSA、或SM2/SM4(国产替代RSA),或干脆进行签名校验,导致安全测试测试成本提高不少,也将很多不熟悉加密测试的测试人员拒之门外,而关于前端调试的文章总是少之又少,懂的人又总是含糊其辞,本篇文章将以最快的速度、最笨的方式教会大家,如何进行快速定位加密函数

首先我们观看下图,下图password字段为加密字段

前端JS加密对抗由浅入深-1

前端JS加密对抗由浅入深-1

打开浏览器的F12进行开发者调试,重新登录一次而后查看网络选项

前端JS加密对抗由浅入深-1

这么老多,先随便打一个断点试试,直接点击右侧蓝色链接,会自动跳转到关键点位,然后直接打断点即可

前端JS加密对抗由浅入深-1

前端JS加密对抗由浅入深-1

而后需要重新点击登录按钮,可以发现会话会直接在断点处停止,而后返回控制台,在控制台可以输入字符串或函数来查验结果

前端JS加密对抗由浅入深-1

大家可以看到,此时断点并没有直接打到加密之前的位置,那么此时就需要往前打断点,由于函数被处理过,所以需要多打几个断点进行推测

前端JS加密对抗由浅入深-1

再次调试,芜湖,看到了明文和密文在一起了

前端JS加密对抗由浅入深-1

那么结果显而易见,je(ot);关键函数,这里面有事儿啊,二话不说直接加一个断点,重新调试,需要注意的是,这次不能F10了,直接F9

前端JS加密对抗由浅入深-1

F9可以直接进入到这个函数,此时还是明文的

前端JS加密对抗由浅入深-1

继续F9

前端JS加密对抗由浅入深-1

不用看了,直接拿下key

前端JS加密对抗由浅入深-1

前端JS加密对抗由浅入深-1

此处结束,本次实验采取的是静态硬编码秘钥,AES加密,实际上现在大多数的站点加密方式已经改用动态秘钥的AES配合RSA对站点进行加密了,而RSA是不可逆的非对称性加密,若是遇到这种站点,即便是拿到了公钥,也很难通过Burpsuite进行测试了,毕竟现在市面上似乎没有那种多种加密配合的插件,而写插件的难度无疑是很高啊,但是如果每个接口都写脚本的话,那无疑会增加测试时间和成本,所以如果遇到这种情况该如何解决呢?让我们带着疑问,期待下期,AES+RSA加密的案例吧!

原文始发于微信公众号(我不懂安全):前端JS加密对抗由浅入深-1

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月5日16:54:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   前端JS加密对抗由浅入深-1http://cn-sec.com/archives/2367328.html

发表评论

匿名网友 填写信息