Git Product home page Git Product logo

autodecoder's Introduction

autoDecoder

想维护成一个有很多用例、接口的项目,希望各位师傅有加解密之类的需求可以一起沟通,完善本项目。

工具针对人群:有一定代码基础的师傅、没有基础(但是愿意自主学习捣鼓自动加解密)的师傅

关于autoDecoder的案例移步autoDecoder-usages,对很多想自行编写接口的师傅会有帮助

接口代码模板不要随便去改动获取参数和返回的格式,否则会出现乱码、无法正常运行等问题

交流群

image

二维码失效请加微信f-f0ng、备注autoDecoder交流

关注主页公众号(only security),回复autodecoder获取下载地址】

捐赠 (如果项目有帮助到您,可以选择捐赠一些费用用于autoDecoder的后续版本维护,本项目长期维护)

image image

有问题先到FAQ查看

简单流程图

正常流程图
通过autoDecoder处理的流程之对于密文的处理
通过autoDecoder处理的流程之对于明文的处理

2024.5.5 更新0.40

  1. 修复sm4加解密bug(base64)
  2. 增加密文关键字对响应体的判断

2024.3.17 更新0.39-beta1

  1. 修复加密bug(SM4与AES)

2024.3.13 更新0.39

  1. 修复SM4中的base64加解密bug
  2. 修复AES/DES加密中base64解密的bug

2024.2.2 更新0.38

  1. 优化SM4、SM2加解密
  2. 优化正则匹配替换

2024.1.2 更新0.37 新年第一更,祝大家新年快乐!

  1. 自带加解密增加sm2、sm4(CBC、ECB)加解密
  2. 正则表达式保存进配置文件

2023.12.18 更新0.36

  1. 修复了替换开关默认选中的问题
  2. 接口加解密调试优化
  3. 优化header头关键字判断

2023.11.22 更新0.35

  1. 增加加载配置文件、保存配置文件的模块,后续使用可以根据配置文件的命名来进行加载配置
  2. 增加请求、响应替换功能,类似burp的Match and Replace模块,增加提取模块,案例配置如下
image

正常响应

修改后的响应

2023.11.11 更新0.34

  1. 增加header头关键字判断

2023.10.23 更新0.33

  1. 增加响应base64自动解码,当响应包返回的为base64时,可以自动解码,防止二进制数据包损坏
  2. 增加选项保存、读取

2023.9.16 更新0.32

  1. 明文关键字、密文关键字的设置优化

2023.9.5 更新0.31

  1. 域名匹配模块中可以进行多域名匹配,修复了原版本无法在多个域名下显示选项卡问题
  2. 将接口调试模块的两个换行符取消

2023.7.6 更新0.30

  1. Repeater、Intruder模块中,增加右键加密、解密,当设置好相应的方法后可以对请求体的body进行加密、解密
  2. 修复Send to Repeater、Send to Intruder不会带上端口号的问题

2023.5.22 更新0.27

  1. autoDecoder扩展选项卡增加右键Send to Repeater、Send to Intruder,并且增加格式化,目前仅针对json格式

2023.5.17 更新0.26

  1. 修复了勾选对请求头处理后,请求头缺失问题
  2. 增加对密文URL解码读取、加密后的密文URL解码选项
  3. 修复其他问题,如指定域名端口号不出现扩展选项卡、windows下中文解密乱码等问题

感谢微信群yosel 师傅反馈

2023.4.25 更新0.25

  1. 增加二进制请求体、响应体处理,原理为将请求包的内容base64编码后传入接口,需要对burp做以下设置,否则获取到的编码为损坏的
    • 需要勾选User options->Character Sets中的Use the platform default(UTF-8)[MAC],或者勾选Display as raw bytes[Windows]

2023.4.14 更新0.24-beta2

  1. RSA加解密
  2. 响应包正则模式加解密

2023.4.12 更新0.24-beta1

  1. 根据加密方式对key进行截取
  2. 修复只选中接口加解密无法进行加解密的问题

2023.4.8 更新0.24

  1. 优化测试接口数据包显示
  2. 增加zeropadding填充模式加密
  3. 优化base64解码问题

2023.2.22 更新0.23

  1. 优化了插件的一些问题
  2. 案例移步autoDecoder-usages

2023.2.16 更新0.22-beta1

  1. 优化了读取密文的时候将\u0000去除的问题
  2. 在自带算法中,将请求包加解密、响应包加解密分离开,可以选中加密算法null表示不进行加解密,返回原数据包

2023.2.15 更新0.22 重大更新

  1. 重构UI页面,之前的UI太混乱,花了点时间重构了页面UI

image

  1. 增加自带算法加解密的正则提取,当正则表达式有内容时生效,针对两种情况:

    1. 只有请求加密的情况
    2. 在爆破攻击中,对账号密码加密

    配置页面

    image image

    原始请求

    image

    真实请求

    image

    解密后

    image
  2. 增加接口加解密时的调试页面,方便代码进一步编写

正常解密请求包

image

正常解密响应包

image

处理请求头

image

2023.2.14 更新0.21

  1. 增加burp模块按钮,防止与其他模块(如插件Extender)产生的请求冲突
  2. 优化插件解密读取密文方式,进行URL解码后读取

2023.1.5 更新0.20

  1. 增加RSA解密 一个例子
  2. 优化选项卡数据包设置,不影响repeater本身的数据包内容
解密请求包
解密请求包后不影响原请求包

2022.9.7 更新0.19

  • 增加请求包、响应包不同加密算法按钮【仅针对接口加解密模式】,针对于请求包、响应包使用不同的加密算法(实现方式为:在请求解密接口同时,传入参数requestorresponse,表明是请求[request]还是响应[response])

image

  • 修改了ui,优化了在新版bp上html无法解析的问题

2022.5.18 更新0.18

  • 增加3DES加密AES加密JSON嵌套加密三个例子

  • 在明文发出请求的时候,如果响应包选中了默认选项卡,则无影响;但是当响应包选中了扩展选项卡,还会进行解密,导致请求包内的响应体报错,0.18修复该问题:明文发出请求,响应包只有明文。

  • 增加密文关键字,出现该关键字则不进行加密,具体可以查看例json嵌套加密

2022.5.15 更新0.17

  • 优化Desede(3DES)加密处理问题,3DES加密的密钥为24位,当输入超过24位将会报密钥长度错误,处理方式为对密钥长度进行了截取

2022.5.11 更新 0.16

  1. 增加响应头处理,传入参数同样为dataHeaders
# -*- coding:utf-8 -*-
# author:f0ngf0ng

from flask import Flask,Response,request
from pyDes import *
import base64
app = Flask(__name__)

@app.route('/encode',methods=["POST"])
def encrypt():
    body = request.form.get('dataBody')  # 获取  post 参数 必需
    headers = request.form.get('dataHeaders')  # 获取  post 参数  可选

    if headers != None: # 开启了请求头加密
        headers = headers + "aaaa:bbbb\r\n"
        headers = headers + "f0ng:test"
        print(headers + "\r\n\r\n\r\n\r\n" + body)
        return headers + "\r\n\r\n\r\n\r\n" + body # 返回值为固定格式,不可更改

    return  body

@app.route('/decode',methods=["POST"]) # 不解密
def decrypt():
    body = request.form.get('dataBody')  # 获取  post 参数 必需
    headers = request.form.get('dataHeaders')  # 获取  post 参数  可选
    if headers != None: # 开启了响应头加密
        print(headers + "\r\n\r\n\r\n\r\n" + body)
        headers = headers + "yyyy:zzzz\r\n"
        headers = headers + "f0ng:onlysecurity"
        return headers + "\r\n\r\n\r\n\r\n" + body # 返回值为固定格式,不可更改

    return body

if __name__ == '__main__':
    app.debug = True # 设置调试模式,生产模式的时候要关掉debug
    app.run(host="0.0.0.0",port="8888")

原始请求响应

image

经过autoDecoder处理后的响应

image

  1. 修复当请求体为空时候的报错
  2. 修复当关键词置空时造成多出一个换行符的问题

2022.5.7 更新 0.15

  • 优化设置域名处的端口问题,两种模式:

①只输入域名,匹配域名与任意端口号

image

匹配所有www.baidu.com:端口号,如www.baidu.com:8080www.baidu.com:8088

②输入域名与端口号,匹配唯一域名与端口号host

image

只匹配www.baidu.com:8080

2022.4.26更新 0.14

  1. 增加对整个请求包的处理,具体怎么修改,根据个人需要不同进行自定义了,模板文件为flasktestheader.py

配置如下:

原始请求包,捕捉整个请求如下,在请求包添加额外的请求头aaaa:bbbbf0ng:test

实际请求包

  1. 增加自定义设置明文关键字,当请求体中出现了相应的关键字则不对数据包进行处理,取contains进行判断

2022.4.22更新 0.13

  1. 对于\r\n的请求包处理不够完善,0.13版本修复该问题

  2. 增加案例1登录口爆破之ldap的md5加密,案例2sql注入绕过之sqlmap的数据包换行问题,方便更好使用工具进行渗透测试

0x01 背景

  • 当数据包里都是密文,我们无从下手;就算是获得了加解密的一些关键信息,能解密出来,但是每个数据包我们都需要慢慢解密,请求包需要解密,响应包也需要解密,比较麻烦
  • 其实取auto这个名字并不是真正的auto,加解密算法还是需要自己去逆出来的,只是相对于数据包里的密文来说,可以算是半自动

0x02 优点

  • 明文传,明文响应;密文传,密文响应,不影响原本通讯包的基础上,增加一个bp扩展页面查看明文信息
  • 自定义加解密的接口,当存在复杂数据加密的时候,可以自行编写python代码对接口进行加解密, 自定义需要加解密域名,即开即用

0x03 插件的加解密方式

  • 直接通过插件自带的算法去加解密数据包(较为简单,仅支持部分AES、DES、DESede加密)
  • 通过python的flask接口去编写加解密数据包的api(不一定是flask框架,也可以起其他框架,只需要接口地址正确且加解密流程正确即可)

0x04 文件介绍:

  • users.sql 为测试所用数据库

  • testsql.php 为加密请求数据、加密响应数据且存在注入的页面

  • flasktest.py 为测试文件编写的Python flask加解密接口。

详细举例可至公众号查看https://mp.weixin.qq.com/s/B-lBbVpJsPdCp1pjz2Rxdg

通过自带加解密算法进行解密

通过自带加解密算法进行解密

通过flask接口进行解密

通过flask接口进行解密

sqlmap进行加解密

sqlmap进行加解密

autodecoder's People

Contributors

f0ng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

autodecoder's Issues

加解密问题

image
如图,密文存在需要URL编码后才能解密,目前插件不存在该功能吗?
image

使用过程中发现Turbo Intruder 不生效

Turbo Intruder 不生效,未做其他插件的测试,
image
目前没有做其他插件的测试,是因为turbo Intruder 有什么特殊的地方吗,来logger也没有看到请求。
image

解密问题

用的好好的,突然变白了,重启都没有用
image

intruder模块自动加密未生效

配置好后,在repeater模块请求和响应包解密都没有问题,然后配置好了正则
image
但是在intruder模块,爆破明文时,没有自动加密
image

English Language Support

The car was really nice and useful. This plugin really works great. Can you add English language support so that more people can use it?

嗯,小号又骂人了,围观一下

          > > 有这个闲工夫劝你多搞搞技术,自己被踢了怨不得别人,四十多岁人了,搞这些花里胡哨的 <img alt="image" width="929" src="https://user-images.githubusercontent.com/48286013/260197514-966e58ac-d9b4-4450-91cb-19b821fd8a76.png">
image
  1. 徐培宸,善待用你工具的每个人,你闲工夫多也没见你多说一句给你的爱好者
  2. 短信是让你来看GitHub,你以为不能做其他事吗

够胆查不够胆发?别装那个大逼斗了,小心把自己反噬了,问问题别人给你办法你不用,你是一点脑子没有啊?反过来威胁谁呢,几把给你能的,那么能咋开个小号灰溜溜的来底下评论呢,人品败坏

Originally posted by @n1ko61 in #18 (comment)

徐培宸,这是你的小号?,你也不看看我的名字,小号是你相当就能当的?小学拼音白学了

遇到了一个问题 不知道是bug还是啥

我使用nodejs写了一个脚本来进行接口的加解密,在插件自带的接加密窗口可以正常加解密
image

但是到其他界面只能进行加密操作,如果点击autodecoder则没有将解密的结构进行返回到bp上。解密结果已经可以在我控制台打印出来并且执行了返回操作。
image
按理说不应该加解密窗口哪里的可以正常运行到其他界面也是可以的嘛。我排查了四五个小时找到问题出在哪里。

666

提个小小需求,直接内置到蚁剑插件里,方便我们jb小子上手hhh

我出现了一个bug

image
image
在历史抓包记录里正常解密没有问题
image
问题就出现在这里 返回包是错误的 我查看了我写的接口记录
1697593167790
按理说他那个databody应该是加密前的数据也就是{"sac001":"0","ack001":"2c928ab58acbad7a018b3b6210183399","classPId":"WP00000103","state":"7","pageIndex":1,"pageSize":3}
但是他现在还是加密的数据 导致在发包的时候又进行了一次加密 我不知道是扫描原因
下面是我的js脚本
var http = require('http');
const url = require('url');
const querystring = require('querystring');
var CryptoJS = require("crypto-js");
const key = CryptoJS.PBKDF2('D0so6K', CryptoJS.enc.Hex.parse('40b92f21b7356c04b79fbe18c10752cb'), {
keySize: 4,
iterations: 1000
});
const iv = CryptoJS.enc.Hex.parse('6a83227ace94510ca9b77878a2d0c6da');

function Encrypt(word) {
var srcs = CryptoJS.enc.Utf8.parse(word);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {iv:iv});
return encrypted.ciphertext.toString(CryptoJS.enc.Base64);
}

function Decrypt(word) {
var decrypt = CryptoJS.AES.decrypt(word, key, { iv:iv});
return decrypt.toString(CryptoJS.enc.Utf8);
}

http.createServer(function (req, res) {
let path = url.parse(req.url);
let postparms = '';
if (path.pathname === '/encode') {
console.log("encode路由");
req.on('data', (parms) => {
postparms += parms;
});
req.on('end', () => {
postparms = querystring.parse(postparms);
console.log(postparms);
let dataBody = postparms.dataBody;
let Data = Encrypt(dataBody);
console.log(Data);
res.end(Data);
})
} else if (path.pathname === '/decode') {
console.log("decode路由")
req.on('data', (parms) => {
postparms += parms;
})
req.on('end', () => {
postparms = querystring.parse(postparms);
let dataBody = postparms.dataBody.replace(/^"|"$/g, '');
console.log(dataBody);
let decryptData = Decrypt(dataBody); // 解密,默认输出 utf8 字符串,默认使用 pkcs#7 填充(传 pkcs#5 也会走 pkcs#7 填充)
// decryptData = Buffer.from(decryptData) // console.log(decryptData) // decryptData = decryptData.toString('utf-8')
console.log(decryptData);
res.end( decryptData );
})
} else{
res.write("end");
res.end()
}
}).listen(8888);

如果是对header头进行加密呢

场景是请求的header里有sign字段,每次对这个字段的值进行加密,有进行加密的http接口,目前这个项目支持吗

send to repeter

send to repeter后端口没跟过来,目标站点端口是8148,右上角这里还是80,发送失败,得手动改回来
图片

功能建议

有的app是请求不加密但是返回使用的aes加密。这种只能用autodecoder的接口来编写。但是如果可以加入但自带的解密解密接口来说会比较方便希望作者可以将这个功能加入进去。另外如果作者能在自带加密解密中携带更多的加密算法比rsa等。还有aes常用的模式会更加方便的工具很不错。

善待每个用你工具的人,不是每个人都是小白.多的不说了,懂得都懂(嗯,牛逼,小号开始骂街了)

补充一下:

下面小号已经开始骂街了,这个帖子真是开对了,谁素质差不用我说了吧,丢人丢到世界上了,不过终于知道原因了,开源是这样玩的,学会了

图片

这个图是csdn后台,不知道楼下的看到这个激动什么呢?

xupeichen

这是历史登录ip,擦掉了还这么激动,这个素质真的无话可说

xupeichen
xuxiaochen1

鉴赏链接:
https://blog.csdn.net/jtsqrj/article/details/124429182
https://blog.csdn.net/jtsqrj/article/details/124242654

嗯,小号开始骂人了

就不惯着你,40来岁连人都做不明白,跳梁小丑除了急你还有点啥?恼羞成怒啦,你该反省的是你为什么能一边用着开源的东西一边骂原作者,且是别人已经给你解决的思路的前提下,你真没脑子啊,饭嘴边要喂你吃,你是他儿子?给你惯的,《甲方你王哥》?

Originally posted by @n1ko61 in #18 (comment)

徐培宸你也就这点素质了,围观的看看,开源作者小号开始骂街了,这个帖子真是开对了,谁素质差不用我说了吧

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.