Burp插件,自动解密被加密的报文,让你像测试明文一样简单。

域名与网站数据安全关系型数据库

1

工具介绍

日常渗透过程中,经常会碰到一些网站需要破解其 JS 加密算法后,才能对数据包进行修改。我们将加密算法破解出来后,一般就是使用 python 的 requests 库,发送修改的数据包来进行渗透测试,导致效率低下,因此考虑将 JS 逆向的结果通过插件与 burp 结合,提高效率。在 JS 逆向结束之后,通过 RaindropEcho 提供的 JS 模版,导入到插件,就可以完成 burp 数据包的自动加解密。

2

工具使用

JS 逆向模版使用

1、在 encryptFunction 函数里写好加密逻辑

2、在 config 里写好逆向代码对应的域名和接口

3、在 default_json 里写好逆向出来的初始原数据

JS 逆向模版如下:


          
const fs = require('fs');
          

          
// 上面自己编写加密函数
          

          

          
// 写加密函数的加载方式
          
function encryptFunction(data) {
          
    // 使用 JSON.parse 将字符串转换为 JSON 对象
          
    const json_data = JSON.parse(data);
          

          
    // 原来数据包时什么格式,就要返回什么格式
          
    return `data=${jeimit(json_data.data)}&crc=${json_data.crc}`
          
}
          

          
// 编写域名和接口
          
const config = {
          
    domain: "xxx.com",
          
    path: "/v3/xxx"
          
};
          

          
// 编写逆向出来的原数据
          
const default_json = {
          

          
}
          

          
// 下面代码不要动---------------------------------------------------------------
          

          
// 检查传递的参数数量
          
const mode = process.argv[2];
          

          
if (mode === 'config') {
          
    console.log(JSON.stringify(config));
          
    process.exit(0);
          
}
          
if (mode === 'default') {
          
    console.log(JSON.stringify(default_json));
          
    process.exit(0);
          
}
          

          
if (process.argv.length < 4) {
          
    console.error("Usage: node script.js [mode] [inputFile] [outputFile]");
          
    process.exit(1);
          
}
          

          
const inputFile = process.argv[3];
          
const outputFile = process.argv[4];
          

          
// 读取输入文件内容
          
let inputData;
          
try {
          
    inputData = fs.readFileSync(inputFile, 'utf8');
          
} catch (err) {
          
    console.error(`Error reading input file: ${inputFile}`, err);
          
    process.exit(1);
          
}
          

          
let outputData;
          

          
switch (mode) {
          
    case 'encrypt':
          
        outputData = encryptFunction(inputData);
          
        break;
          

          
    default:
          
        console.error(`Unknown mode: ${mode}`);
          
        process.exit(1);
          
}
          

          
// 将输出数据写入输出文件
          
try {
          
    fs.writeFileSync(outputFile, outputData, 'utf8');
          
} catch (err) {
          
    console.error(`Error writing to output file: ${outputFile}`, err);
          
    process.exit(1);
          
}
      

导入插件

picture.image

导入模板文件

step 1:选择 js 文件

picture.image

step 2:测试 js 文件放置路径(注:js 文件路径一定不要有中文)

picture.image

step 3:导入完成后

picture.image

插件使用

注明:

  • 本次演示,选用网站心跳包测试,无任何敏感数据,对网站无任何影响

step 1:选择对应的数据包

picture.image

step 2:发送到插件

picture.image

step 3:修改数据包成功发送

picture.image

3

TODO

picture.image

4

工具获取

https://github.com/tingyusys/RaindropEcho

转自李白你好

如有侵权,请联系删除

推荐阅读

实战|记一次奇妙的文件上传getshell

「 超详细 | 分享 」手把手教你如何进行内网渗透

神兵利器 | siusiu-渗透工具管理套件

一款功能全面的XSS扫描器

实战 | 一次利用哥斯拉马绕过宝塔waf

BurpCrypto: 万能网站密码爆破测试工具

快速筛选真实IP并整理为C段 -- 棱眼

自动探测端口顺便爆破工具t14m4t

渗透工具|无状态子域名爆破工具(1秒扫160万个子域)

查看更多精彩内容,还请关注 橘猫学安全

每日坚持学习与分享,觉得文章对你有帮助可在底部给点个“ **再看

”**

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论