干货!| 针对前端加密爆破的方法及实战案例
渗透测试老鸟-九青 2024-10-25 11:03:01 阅读 62
一 、概述
现在基本上大部分web应用系统都在后台登录界面对密码使用了js加密,有的是将用户名密码同时进行了加密,对于使用了加密的我们可以利用burp插件直接调用加密函数本地加密后再进行爆破,也可以使用一些工具直接模拟浏览器登录界面进行爆破。
二、工具介绍
1、blasting(图形化爆破工具)
优点:可自动化进行爆破和验证码识别,无视加密方法,调试难度较低
缺点:结果只有title和响应长度,爆破结果可能存在误报
下载方式:https://github.com/gubeihc/blasting
2、jsEncrypter | 前端加密Fuzz插件
优点:burp安装,速度快,准确率高,结果方便查看
缺点:需要下载加密js到本地,需要手动查找加密函数的调用方法
下载方式:https://github.com/c0ny1/jsEncrypter
3、BurpCrypto | burp插件
优点:无需下载js,在burp中可以进行加解密
缺点:需要手动查找加密参数,目前仅支持AES/DES加密、RSA公钥加密
下载方式:burp扩展商店搜索BurpCrypto安装
三、实战案例
1、通过BurpCrypto 进行爆破使用前缀+AES加密的参数
(1)加密方法查找
1、首先输入用户名123,密码456,使用抓包工具拦截查看
2、可以看到用户名和密码都进行了加密,并且这里我们得知了对应的参数loginName和loginPwd
3、浏览器F12,这里先搜索下loginName
4、 在我们觉着比较像是加密函数调用的地方,打个断点,不是没有关系,多打几次断点看看就行
这里我们看到用户名和密码还没有被加密,但是用户名加了一个前缀”undefined#”,那我们继续往上翻
5、 从前面我们可以看到loginName=orgid+#+loginName1 (undefind#123),这里我们也就知道用户名的前缀怎么来的了,继续往下看
6、继续点击单步跳过下一个函数执行,从下图可以看出加密是使用aes对用户名和密码进行加密,并且key和iv这里都给出来了,那是不是就可以拿着加密后的值去反向解密去验证了呢,当然可以,但是我们还需要知道aec加密的模式等,继续往下翻
7、从下图可以看出,AES加密的模式为CBC,填充为Pkcs7,编码是base64
8、 现在我们使用解密工具去验证一下,从下图可以看到,用户名和密码成功解密,证明我们加密参数没有问题,接下来就到了下一步自动进行加密爆破
(2)BurpCrypto使用及配置方法
1、 打开burp选择对应插件,配置如下参数,点击add processor 并填写任意名称
2、 将之前抓到的登陆包发送至爆破模块,这里将用户名和密码都添加上
3、再进行添加用户名字典及处理规则,处理规则里先添加前缀undefined#,再添加BurpCrypto扩展调用,密码直接添加BurpCrypto扩展调用即可
4、 点击开始攻击后即可进行爆破,同时插件也可以支持解密,使用方法为完整选中密文内容,右单击后找到BurpCrypto菜单中的Get PlainText功能。
更多网络安全优质免费学习资料与干货教程加
送渗透工具、技术文档、书籍,面试题、视频(基础到进阶。环境搭建,HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等)、应急响应笔记、学习路线。
申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。
上一篇: webapi [FromBody]string获取入参为null, asp.net webapi [FromBody]string 获取不到POST数据的解决方法
下一篇: org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded
本文标签
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。