一文看懂mitmdump加密对抗

简介: 一文读懂mitmdump上下游代理实现对抗前端加解密

书接上文,上次的文章讲述了前端动态调试获取加密的方式,但是像上文那种采用对称加密后再次加盐进行编码,测试起来就很麻烦,所以为了便于测试,此次讲解如何利用mitmdump进行加密再对抗。

首先回顾一下上文的加密方法核心代码,如下图所示:

图片.png

图片.png

图片.png

代码抠出来了,我们先不理会sign的生成;可以看到,实际上流程是很清晰的:encryptParam(config.data.data) 方法为实际对请求体加密的方法,而跟进encryptParam(param)方法,首先截取token后六位与硬编码字符串进行拼接生成key,而后第一次使用encrypt()方法进行TripleDES加密,并将值赋值给des3Str;之后将des3Str与salt进行结合后,再次进行TripleDES加密,并输出windows系统安装mitmdump请自行下载安装;由于我们知道了加密方法,实际上response返回也一样是相同的加密,所以我们可以先写一个简单的脚本,将两次解密后的数据输出打印在控制台


首先我们需要获取token后六位,这个抓个包就能拿到;其次是我们需要知道待解密参数的格式、参数是什么

图片.png

可以看到,请求和返回的格式都是json格式的,分别是data和bizContent,所以可以先写一个简单脚本,直接解密请求和返回

图片.png

图片.png

des3_decrypt其实是解密函数的封装;浅浅的运行一下,默认mitmdump的代理端口是8080,注意别和burpsuite的代理冲突

图片.png

大家对付看一下,此时可以看到,请求和返回都解密成功了,最起码不需要复制粘贴去解密了不是,接下来做的就是继续修改脚本,将明文的请求和返回发送给burpsuite,可以先试一下单独将请求包发送给burpsuite看看效果,只需要在代码原有基础上加一句话就行

图片.png

而后将burpsuite作为下级代理,下级代理就是流量从客户端传入到mitmdump,mitmdump再将流量回传给burpsuite

执行命令

mitmdump -p 7070 -s d3.py --mode upstream:http://127.0.0.1:8080 --ssl-insecure

设置浏览器代理为7070,这样流量就会先经过mitmdump ,然后经过burpsuite,我们可以先看一下效果

图片.png

图片.png

可以看到,请求包已经是明文了,但是发送数据包后,数据返回是异常的

图片.png

请求正常返回异常,这是因为burpsuite发送请求是明文的,明文请求发送给服务端,服务端是没有办法解析的,因为传回的数据正常应该是密文的,所以导致响应时效,这个时候就引入了第二个知识点:上级代理但是这里需要说明一下,mitmdump的下级代理是burpsuite,所以经过mitmdump的流量才能经过burpsuite;那么如果在burpsuite设置上游代理,那么经过burpsuite的流量就会重新经过mitmdump进行加密回传给服务器,从而实现burpsuite明文流量但是不影响web的响应过程


所以这里我们需要利用mitmdump编写一个加密明文request请求的脚本来实现这个功能

图片.png

图片.png

此时下游代理脚本d3.py保持不变,上游脚本en3.py如上所示,而后分别运行

mitmdump -p 7070 -s d3.py --mode upstream:http://127.0.0.1:8080 --ssl-insecure

mitmdump -p 9091 -s encrypt.py --ssl-insecure

此时浏览器依然设置7070代理,burpsuite设置8080代理,同时在burpsuite增加上级代理

图片.png

运行后,重新触发功能点;需要注意的是,无论是上级代理脚本还是下级代理脚本,即使是暂时不处理返回包response请求,也需要进行单独请求,否则依然会报错

图片.png

首先请求发现下级代理的请求和响应都是正常的,此时对burpsuite的数据包进行拦截、重放,发现请求正常

图片.png

请求路径为:

客户端 -> mitmproxy:7070(解密) -> Burp:8080 -> mitmproxy:9071(加密) -> 服务器

响应路径则应该为:

服务器 -> mitmproxy:9091(解密) -> Burp:8080 -> mitmproxy:7070(加密) -> 客户端  


所以我们只需要补充下游代理对返回包的加密流程补充,上游代理对返回包解密流程的补充,即可完成完整的请求链路,实现burpsuite的明文请求、明文响应

完整的下游代理d3.py脚本如下:

图片.png

图片.png

完整的上游代理en3.py脚本如下:

图片.png

图片.png

重新运行脚本

mitmdump -p 7070 -s d3.py --mode upstream:http://127.0.0.1:8080 --ssl-insecure

mitmdump -p 9091 -s encrypt.py --ssl-insecure


图片.png

此时burpsuite发包正常

图片.png

至此完成全部的解密加密流程

图片.png


相关文章
|
安全
/etc/security/cacerts 只读权限
/etc/security/cacerts 只读权限
1126 0
|
小程序 JavaScript 前端开发
【经验分享】如何获取任意小程序appId及页面路径
【经验分享】如何获取任意小程序appId及页面路径
2740 8
|
JavaScript 关系型数据库 MySQL
fastadmin 部署phpstudy,初步学习fastadmin,保姆级详细讲解
fastadmin 部署phpstudy,初步学习fastadmin,保姆级详细讲解
1257 0
|
缓存 Linux
linux 内存清理释放命令
linux 内存清理/释放命令 1.清理前内存使用情况  free -m 2.开始清理  echo 1 > /proc/sys/vm/drop_caches3.清理后内存使用情况 free -m4.
8664 0
|
6月前
|
人工智能 Shell API
OpenClaw(Clawdbot)阿里云及本地部署保姆级指南:附GitHub Codespaces 700+Skills赋能实操
OpenClaw(原Clawdbot、Moltbot)作为2026年热门的开源AI智能体框架,GitHub星标已破13万,其核心价值在于“可执行的自动化能力”——不仅能聊天推理,还能连接各类工具完成实际任务。但单独的OpenClaw如同“瘫痪的天才”,模型是大脑,而Skills(技能插件)才是执行力的核心。GitHub上的`awesome-openclaw-skills`仓库收录了700+技能,覆盖开发、办公、生活等30多个领域,让AI真正拥有“手脚”。
1064 4
|
10月前
|
人工智能 算法 搜索推荐
2025年国内数字人平台选购指南:聚焦全链路能力,告别工具碎片化困境
国内数字人平台众多,功能参差,用户常陷多工具切换、成本高、效率低困境。本文基于2025年实测数据,从全链路集成、场景适配、技术壁垒、成本效益四大维度,深度解析必火AI、火山、阿里、讯飞等主流平台,助你避开选择陷阱,精准匹配个人IP、电商直播、企业服务等应用场景,实现高效视频化转型。
|
网络安全
SNETCracker.exe 2022/1/26 31:13:29----检查12.26.20.1:SSH登录发生异常!未能加载文件或程序集“ChilkatDotNet4.dll”或它的某一个依赖项
SNETCracker.exe 2022/1/26 31:13:29----检查12.26.20.1:SSH登录发生异常!未能加载文件或程序集“ChilkatDotNet4.dll”或它的某一个依赖项
1115 0
|
机器学习/深度学习 自然语言处理 算法
深度学习在计算机视觉和自然语言处理中的应用
深度学习在计算机视觉和自然语言处理领域的应用为我们带来了更多可能性,不断推动着人工智能技术的发展。无论是从理论还是实际应用来看,深度学习都在为计算机视觉和自然语言处理领域的发展注入了无限的活力。随着技术的不断创新,我们有理由相信,深度学习将在未来继续刷新我们的认知和想象。
深度学习在计算机视觉和自然语言处理中的应用
|
安全 测试技术 PHP
如何搭建 sqli-labs 靶场保姆级教程(附链接)
如何搭建 sqli-labs 靶场保姆级教程(附链接)
|
自然语言处理 API 数据安全/隐私保护
手把手教你搭建 cssbuy 淘宝代购系统
随着全球电商的兴起,淘宝成为海外用户青睐的购物平台,但语言、支付和物流等问题限制了其直接使用。CSSBuy 等淘宝代购系统应运而生,为海外用户提供便捷的购物体验。本文详细解析如何搭建类似系统,涵盖需求分析与功能模块设计。目标用户包括海外华人、留学生及外国消费者,核心功能涉及商品搜索、代购下单、支付集成、物流管理、客服售后及多语言支持等。系统模块包括用户管理、商品管理、购物车、订单管理、支付管理、物流管理、客服售后和多语言模块,全面满足海外用户的购物需求。

热门文章

最新文章