freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

如何解决Web渗透测试请求数据包加密(附脚本)
Jiangneex 2022-12-19 16:50:42 197269
所属地 浙江省

概述

相信很多师傅和我一样遇到过如下图一样的请求数据包;越来越多的Web站点使用一些JS加密库或自定义加密的方式对请求数据包进行加密,这对于渗透测试的效率和难度无非是增加了;于是我开始寻找一些解决方式。

第一阶段

前后端数据加解密的请求交互过程,可以简单概括如下:

1、前端JS对请求的参数加密后发送给后端

2、后端使用相对应的解密方式进行解密参数,再进行业务过程的处理

于是我就有了第一个解决方案,直接在浏览器console控制台中调用js中的加密函数,再替换到数据包中的参数值,就可以解决数据包的加密问题,完成对参数的fuzz测试。

1671435584_63a01540c9b4bf9229e80.png!small?1671435586280

但是这种方式存在两个问题:

1、频繁的在console和数据包中复制替换值,效率低下。

2、有些时候我们需要借助例如sqlmap等工具时,这种方式就无法胜任。

第二阶段

为了解决第一阶段的两个问题,如果我们通过代理自动对数据包进行加密呢,是不是就解决了以上痛点?

模型大概如下:

明文数据包----->通过加密代理自动对参数进行加密----->转发给服务器

于是我在一些文章中找到了一些解决方案并写了一个python脚本帮助我们解决这个问题,脚本工具的实现原理如下:

burpsuite:一级代理,修改request中的加密参数或删除response中加密js,使请求以明文形式发送。

mitmproxy:二级代理,在addon中加载pyexecjs完成对请求体的加密编码。

至此就可以实现手动编辑明文或sqlmap等工具直接代理到加密代理,加密代理自动对明文进行加密并将请求转发给服务器,帮助我们快速进行漏洞验证或fuzz。

当然如果熟悉JAVA写burp的插件对请求进行加密转发就更方便了!不熟悉或者嫌麻烦的师傅们可以直接用下面写好的JsencryptKiller工具!!!

JsencryptKiller脚本工具使用

工具网盘链接:https://pan.baidu.com/s/1HF_3W2DZtuXkLQkyrLSsdw?pwd=n979

1、安装依赖库

pip3 install pyexecjs

pip3 Install mitmproxy

2、运行 python JSencryptkiller.py -h 查看帮助

1671438176_63a01f60a87c07ed7c14d.png!small?1671438176785

按照参数顺序依次填入参数,出现如下代理监听本地8081即为运行成功

1671438394_63a0203ac1eb9dc6a5a28.png!small?1671438394513

以下是我在本地测试过程:

1、用phpstudy在本地搭建index.php,接收get型参数name,post型参数pwd并打印在页面中;

2、使用login.js作为我的js加密脚本,该脚本中有一个enc的加密函数,返回加密结果;(实际测试中我们根据Web站点的加密方式,构造一个加密js,用来返回一个加密值)

1671438904_63a02238e01e1043046f5.png!small?1671438904719

3、运行脚本python JSencryptkiller.py login.js enc http://192.168.0.107 name,pwd

4、配置burp的上游代理为JsencryptKiller脚本监听的8081端口

5、可以看到接收到的请求参数name和pwd是被login.js加密后的结果,我们可以在运行的脚本中看到请求和返回的数据情况,至此完成加密请求。

1671438639_63a0212f19a53e1d4eb82.png!small?1671438639155

6、sqlmap等其他工具需要代理到JsencryptKiller的监听端口,并运行JsencryptKiller即可。

参考材料

https://www.freebuf.com/articles/web/243370.htm

# 渗透测试 # 网络安全 # web安全 # 渗透测试工具 # js加密算法分析
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 Jiangneex 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
Jiangneex LV.1
这家伙太懒了,还未填写个人描述!
  • 1 文章数
  • 1 关注者
文章目录