渗透测试过程中的JS调试

523 篇文章 35 订阅
273 篇文章 10 订阅

前言

在渗透测试过程中经常会遇到无验证码或者验证码失效的情况,一但发现这种情况,肯定得进行账户密码的爆破,但抓包后发现,账户密码加密了.....此时的你,是不是已经准备好了放弃?

遇到这种情况不要慌,F12翻翻加密方式,往往会有意外惊喜。

今天在测试过程中就发现了网站使用的AES加密,并且在js代码中已经直接给出了加密key和加密矢量,通过这些。我们就能自己写个js小脚本,去将自己的弱口令字典转换为加密后的值,然后在进行爆破。

环境准备

windows、node.js

node.js下载地址如下:

https://nodejs.org/dist/v16.2.0/node-v16.2.0-x64.msi

双击运行,全部next直至安装结束。

打开CMD并输入node,出现交互界面及安装成功。

正式开搞:

打开F12,并切换到Network选项下。输入账户密码,并点击登录,观察数据包。

发现密码字段为password。切换到Source选项卡,ctrl+shift+F 调出全局搜索框,全局搜索 password 字段。

发现在password字段在login_captcha.js文件中通过aesEncrypt函数进行加密。全局搜索aesEncryp。

发现aesEncryp函数的定义同样在login_captcha.js中,打开login_captcha.js

在本地新建一个js文档,并将加密方式复制出来保存。并在函数后添加console.log调用aesEncryp函数并输出加密结果。

console.log(aesEncrypt('admin')); 

在cmd中使用node去执行该js文件。

执行发现报错了,是CryptoJS没有找到,返回浏览器中,全局搜索CryptoJS。

发现在core-min.js中定义了CryptoJS。打开core-min.js,并将CryptoJS定义的内容复制到本地js文档中。

保存并执行该js脚本。

执行后发现又一次报错,是CryptoJS下的parse。继续全局搜到parse。

发现在aes.js下发现了parse的定义。将aes.js下的内容复制到js脚本中。

保存并执行该js脚本。成功将admin在本地加密。

到这里就差最后一部,循环执行,因为这里只做简单的讲解,本次循环使用一个数组去代理弱口令字典。

var passwords = ['admin', 'admin1', 'admin2', 'admin3'];
for (let password of passwords) {
console.log(aesEncrypt(password)); 
}

保存并执行该js脚本。

发现成功将数组中4个值进行了加密并输出。之后便可使用加密后的值对密码

进行爆破。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值