Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/f0ng/autoDecoder

Burp插件,根据自定义来达到对数据包的处理(适用于加解密、爆破等),类似mitmproxy,不同点在于经过了burp中转,在自动加解密的基础上,不影响APP、网站加解密正常逻辑等。
https://github.com/f0ng/autoDecoder

burp burp-plugin burpsuite-extender

Last synced: 3 months ago
JSON representation

Burp插件,根据自定义来达到对数据包的处理(适用于加解密、爆破等),类似mitmproxy,不同点在于经过了burp中转,在自动加解密的基础上,不影响APP、网站加解密正常逻辑等。

Awesome Lists containing this project

README

        

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

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

# 关于autoDecoder的案例移步[autoDecoder-usages](https://github.com/f0ng/autoDecoder-usages),对很多想自行编写接口的师傅会有帮助
# 接口代码模板不要随便去改动获取参数和返回的格式,否则会出现乱码、无法正常运行等问题

交流群

image

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

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

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

image

## 有问题先到[FAQ](https://github.com/f0ng/autoDecoder/blob/main/FAQ.md)查看

## 简单流程图




正常流程图







通过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](https://github.com/f0ng/autoDecoder-usages)

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

## 2023.2.15 更新0.22 重大更新
1. 重构UI页面,之前的UI太混乱,花了点时间重构了页面UI
image

2. 增加自带算法加解密的正则提取,当正则表达式有内容时生效,针对两种情况:
1. 只有请求加密的情况
2. 在爆破攻击中,对账号密码加密

配置页面

image

image


原始请求

image

真实请求

image

解密后

image

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

正常解密请求包

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

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

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

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

image

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

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

image

只匹配`www.baidu.com:8080`

## 2022.4.26更新 0.14

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

配置如下:

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

实际请求包

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

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

2. 增加案例1`登录口爆破之ldap的md5加密`,案例2`sql注入绕过之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

>## 通过自带加解密算法进行解密
![通过自带加解密算法进行解密](https://user-images.githubusercontent.com/48286013/160236779-9848060d-94ff-493d-ace5-44aa85e6e444.gif)

>## 通过flask接口进行解密
![通过flask接口进行解密](https://user-images.githubusercontent.com/48286013/160237163-cd57267e-7e11-49cb-8ec5-41a896f917bc.gif)

>## sqlmap进行加解密
![sqlmap进行加解密](https://user-images.githubusercontent.com/48286013/160238771-dd33b0ef-1007-47a0-9659-c8a20ed6d89e.gif)