目录
技能展示
文章
日记
时间线
项目展示
分类
标签
Android Bash Burp C++ CS CTF DLL劫持 Docker Fastjson Fastjson2 FNV-1a FreeCMS FRP GetShell GitHub IPv6 Java JNDI John JS加密 JS逆向 K8s Kafka Kali lama-cleaner Linux mitmproxy MSF MySQL Nim Nmap NPS Office OID Payload Phar PHP phpMyAdmin POP链 PWN Pyinstaller Python RCE RSA Shellcode SNMP SQL注入 SSH SSRF Ubuntu USB Web Webshell Web安全 Windows XSS YAML Zookeeper 主机探测 代码审计 伪协议 免杀 内网 内网穿透 加密 加解密 参数 反序列化 反弹shell 命令 哈希碰撞 图像处理 域渗透 字符串逃逸 容器 密码学 密码破解 提权 数据库 文件上传 日志分析 未授权访问 权限维持 汇总 流量分析 消息队列 溯源 漏洞 漏洞分析 漏洞利用 端口扫描 编译 网络管理 资产探测 跨平台 运维 进程隐藏 逆向
目录
目录
388 字
2 分钟
mitmproxy加载burp加解密
0x00 安装
在 linux 中:
1sudo pip3 install mitmproxy在 windows 中,以管理员身份运行 cmd 或 power shell:
1pip3 install mitmproxy安装结束。
完成后,系统将拥有 mitmproxy、mitmdump、mitmweb 三个命令,由于 mitmproxy 命令不支持在 windows 系统中运行(这没关系,不用担心),我们可以拿 mitmdump 测试一下安装是否成功,执行:
1mitmdump --version应当可以看到类似于这样的输出:
1Mitmproxy: 9.0.12Python: 3.9.23OpenSSL: OpenSSL 3.0.7 1 Nov 20224Platform: Windows-10-10.0.22621-SP00x01 使用
固定格式:
1from mitmproxy import http2
3
4class AutoDecoderClass(object):5
6 def request(self, flow: http.HTTPFlow):7 pass8
9 def response(self, flow: http.HTTPFlow):10 pass11
12
13addons = [14 AutoDecoderClass()15]针对burp重放包中的数据进行加解密
1from mitmproxy import http2import json3from Crypto.Cipher import AES4from Crypto.Util.Padding import pad, unpad5from pwn import *6
7key = b'0ddmas1dfzcaedev'8
9
10def encrypt(text, key):11 cipher = AES.new(key, AES.MODE_ECB)12 padded_text = pad(text.encode('utf-8'), AES.block_size)13 encrypted_data = cipher.encrypt(padded_text)14 return b64e(encrypted_data).decode('utf-8')15
16
17def decrypt(encoded_text, key):18 cipher = AES.new(key, AES.MODE_ECB)19 encrypted_data = b64e(encoded_text.encode('utf-8'))20 decrypted_data = unpad(cipher.decrypt(encrypted_data), AES.block_size)21 return decrypted_data.decode('utf-8').encode('utf-8')22
23
24class AutoDecoderClass(object):25
26 def request(self, flow: http.HTTPFlow):27
28 # 如果body中有data字段29 if flow.request.method == 'POST' and flow.request.headers['Content-Type'] == 'application/json;charset=utf-8':30 # 如果是json格式31 if 'data' in json.loads(flow.request.content):32 print()33 else:34 flow.request.content = json.dumps({'data': encrypt(flow.request.content.decode('utf-8'), key)}).encode('utf-8')35 print(flow.request.content)36
37 def response(self, flow: http.HTTPFlow):38 print(flow.request.content)39 pass40
41
42addons = [43 AutoDecoderClass()44]0x02 实例
1环境:2JeeSite V5.3.13默认口令:4system5admin此站点的加密是base64
1from mitmproxy import http2import base643
4
5class AutoDecoderClass(object):6
7 def request(self, flow: http.HTTPFlow):8 if flow.request.method == 'POST' and flow.request.headers['Content-Type'] == 'application/x-www-form-urlencoded; charset=UTF-8':9 # print(flow.request.content)10 data = flow.request.content.decode('utf-8').split('&')11 for i in range(len(data)):12 if data[i].split('=')[0] == 'username':13 data[i] = 'username=' + base64.b64encode(data[i].split('=')[1].encode('utf-8')).decode('utf-8')14 if data[i].split('=')[0] == 'password':15 data[i] = 'password=' + base64.b64encode(data[i].split('=')[1].encode('utf-8')).decode('utf-8')16 data = '&'.join(data)17 print(data)18 flow.request.content = data.encode('utf-8')19
20 pass21
22 def response(self, flow: http.HTTPFlow):23 pass24
25
26addons = [27 AutoDecoderClass()28]启动命令
1mitmdump -s demo2_base64.py --ssl-insecure --listen-port 55555 --mode socks5
数据包重放


使用插件

mitmproxy加载burp加解密
/posts/2023/10/mitmproxy-burp-encryption/ 部分信息可能已经过时
目录
技能展示
文章
日记
时间线
项目展示
分类
标签
Android Bash Burp C++ CS CTF DLL劫持 Docker Fastjson Fastjson2 FNV-1a FreeCMS FRP GetShell GitHub IPv6 Java JNDI John JS加密 JS逆向 K8s Kafka Kali lama-cleaner Linux mitmproxy MSF MySQL Nim Nmap NPS Office OID Payload Phar PHP phpMyAdmin POP链 PWN Pyinstaller Python RCE RSA Shellcode SNMP SQL注入 SSH SSRF Ubuntu USB Web Webshell Web安全 Windows XSS YAML Zookeeper 主机探测 代码审计 伪协议 免杀 内网 内网穿透 加密 加解密 参数 反序列化 反弹shell 命令 哈希碰撞 图像处理 域渗透 字符串逃逸 容器 密码学 密码破解 提权 数据库 文件上传 日志分析 未授权访问 权限维持 汇总 流量分析 消息队列 溯源 漏洞 漏洞分析 漏洞利用 端口扫描 编译 网络管理 资产探测 跨平台 运维 进程隐藏 逆向
目录