渗透测试-前端加密分析之RSA加密登录(密钥来源服务器)
本文是高级前端加解密与验签实战的第6篇文章,本系列文章实验靶场为Yakit里自带的Vulinbox靶场,本文讲述的是绕过RSA加密来爆破登录。
分析
这里的代码跟上文的类似,但是加密的公钥是通过请求服务端获取的

http://127.0.0.1:8787/crypto/js/rsa/generator

由于密钥是服务端生产的,服务端有公私钥信息,所以自然不需要传递公私钥了。
请求格式如下,只有被加密的内容:

序列+热加载
序列
打开Yakit的Web Fuzzer,点击左侧的序列

选择从服务端获取密钥的那个数据包

使用数据提取器提取公钥

提取结果正常:

再添加序列:

先把请求体置空,编写热加载代码

热加载
本来之前写的是请求体格式跟上文一样,然后在热加载里请求来获取密钥,缺点也显而易见,每次登录请求都会多出了一个请求公钥的数据包,所以最后选择用Yakit的序列配合热加载标签传参来加密。
由于Yakit热加载标签只能传一个参数,这里感谢Yakit群群友Gun的帮助,给了我一个手动分割参数的函数。
把序列第一个请求提取到的publicKey变量和需要加密的数据传过去,由splitParams分割,然后传参给encrypt进行RSA加密。
序列格式:
{{yak(splitParams|{{p(publicKey)}}|{"username":"admin","password":"admin123","age":"20"})}}
热加载代码:
encrypt = (pemPublic, data) => {data = codec.RSAEncryptWithOAEP(pemPublic /*type: []byte*/, data)~data = codec.EncodeBase64(data)body = f`{"data":"${data}"}`return body
}//分割传过来的参数,每个参数中间以|分隔
splitParams = (params) => {pairs := params.SplitN("|", 2)return encrypt(pairs[0], pairs[1])
}
执行序列,爆破成功,使用序列的好处就是只获取一次公钥即可。

之前的代码:
弃用代码,就不做解释了。
getPubkey = func(host) {//通过请求动态获取公钥rsp, req = poc.HTTP(f`GET /crypto/js/rsa/generator HTTP/1.1
Host: ${host}`)~body = poc.GetHTTPPacketBody(rsp) // 响应体params = json.loads(body)publicKey = str.ReplaceAll(params.publicKey, r"\n", "\n")println(publicKey)return publicKey
}encryptData = (packet) => {body = poc.GetHTTPPacketBody(packet)host = poc.GetHTTPPacketHeader(packet, "Host")pemBytes = getPubkey(host) // 获取公钥println(pemBytes)data = codec.RSAEncryptWithOAEP(pemBytes /*type: []byte*/, body)~data = codec.EncodeBase64(data)body = f`{"data":"${data}"}`return string(poc.ReplaceBody(packet, body, false))
}//发送到服务端修改数据包
// beforeRequest = func(req){
// return encryptData(req)
// }//调试用
packet = <<<TEXT
POST /crypto/js/rsa/fromserver HTTP/1.1
Host: 127.0.0.1:8787
Content-Type: application/json
Content-Length: 179{"username":"admin","password":"123456","age":"20"}
TEXT
result = (encryptData(packet))
print(result)
相关文章:
渗透测试-前端加密分析之RSA加密登录(密钥来源服务器)
本文是高级前端加解密与验签实战的第6篇文章,本系列文章实验靶场为Yakit里自带的Vulinbox靶场,本文讲述的是绕过RSA加密来爆破登录。 分析 这里的代码跟上文的类似,但是加密的公钥是通过请求服务端获取的 http://127.0.0.1:8787/crypto/js/…...
踩准智能汽车+机器人两大风口,速腾聚创AI+机器人应用双线爆发
日前,RoboSense速腾聚创交出了一份亮眼的Q3财报。受到多重利好消息影响,其股价也应势连续大涨。截止12月9日发稿前,速腾聚创股价近一个月内累计涨幅已超88%。 财务数据方面,速腾聚创在今年前三季度实现总收入约11.3亿元࿰…...
YOLOv8全解析:高效、精准的目标检测新时代——创新架构与性能提升
目录 前言 一、模型介绍 二、网络结构 Backbone改进 特征增强网络(neck) 检测头(head) 其它部分 三、Loss计算 四、性能表现 五、YOLOv8使用详解 添加模型 其它部分 创建数据集 数据标注 模型训练 模型预测 六、YOLOv8总结 前言 YOLO(You Only Lo…...
【Python】使用Selenium 操作浏览器 自动化测试 记录
【自动化】Python SeleniumUtil 工具 开启开发者模式 自动安装油猴用户脚本等-CSDN博客文章浏览阅读389次。【自动化】Python SeleniumUtil 工具。https://blog.csdn.net/G971005287W/article/details/144565691?spm1001.2014.3001.5501【学习记录】浏览器指纹相关学习记录&am…...
GDPU软件工程习题(挖空版)
答案: GDPU软件工程24期末复习-CSDN博客 1.8 练习题 一、填空题 软件工程是一门综合性的交叉学科,它涉及计算机学科、( )学科、( )学科和( )学科。软件工程研究的主要内容是 ( )、( )、( ) 三个方…...
【活动邀请·深圳】深圳COC社区 深圳 AWS UG 2024 re:Invent re:Cap
re:Invent 是全球云计算领域的顶级盛会,每年都会吸引来自世界各地的技术领袖、创新者和实践者汇聚一堂,分享最新的技术成果和创新实践,深圳 UG 作为亚马逊云科技技术社区的重要组成部分,将借助 re:Invent 的东风,举办此…...
Hutool工具包的常用工具类的使用介绍
前言 Hutool 是一个轻量级的 Java 工具类库,提供了非常丰富的工具方法,可以大大减少开发时的重复性工作。它的目标是让 Java 开发更简单、更高效。Hutool 提供了多种常用功能,以下是一些常用工具类的使用介绍: 1. StrUtil - 字符…...
C++简明教程(文章要求学过一点C语言)(2)
一、什么是代码文件(头文件和源文件) 想象你在写一篇很长的故事(这就好比是一个 C 程序),你可能会把故事分成不同的章节(类似于 C 中的文件)。 头文件(.h):它…...
防火墙技术与网络安全
网络已经成为了人类所构建的最丰富多彩的虚拟世界,网络的迅速发展,给我们的工作和学习生活带来了巨大的改变。我们通过网络获得信息,共享资源。如今,Internet遍布世界任何一个角落,并且欢迎任何一个人加入其中…...
html 中 表格和表单的关系与区别
在 HTML 中,表格 (<table>) 和表单 (<form>) 是两种常用于展示数据和收集用户输入的元素。它们具有不同的功能和结构。以下是关于这两者的详细介绍: 1. HTML 表格(<table>) 表格用于展示结构化的数据…...
基于Java的购物网站毕业论文
标题:基于 Java 的购物网站 内容:1.研究背景 1.1.国内研究进展 近年来,随着我国电子商务市场的不断发展,越来越多的企业开始涉足电子商务领域。其中,基于 Java 的购物网站成为了众多企业的首选。Java 语言具有跨平台、安全性高、稳定性好等优…...
Redis——缓存预热+缓存雪崩+缓存击穿+缓存穿透
文章目录 1、 缓存预热2、 缓存雪崩3、 缓存击穿4、 缓存穿透总结 1、 缓存预热 什么是预热: mysql加入新增100条记录,一般默认以mysql为准作为底单数据,如何同步给redis(布隆过滤器)这100条新数据。 为什么需要预热…...
wxWidgets使用wxStyledTextCtrl(Scintilla编辑器)的正确姿势
开发CuteMySQL/CuteSqlite开源客户端的时候,需要使用Scintilla编辑器,来高亮显示SQL语句,作为C/C领域最成熟稳定又小巧的开源编辑器,Scintilla提供了强大的功能,wxWidgets对Scintilla进行包装后的是控件类:…...
【ETCD】【实操篇(二)】如何从源码编译并在window上搭建etcd集群?
要在 Windows 上编译 etcd 及 etcdctl 工具,并使用 bat 脚本启动 etcd 集群,首先需要准备好开发环境并确保依赖项正确安装。下面是从 etcd 3.5 源码开始编译和启动 etcd 集群的详细步骤: 目录 1. 安装 Go 环境2. 获取 etcd 源码3. 编译 etcd…...
服务器数据恢复—V7000存储中多块磁盘出现故障导致业务中断的数据恢复案例
服务器存储数据恢复环境: 一台V7000存储上共12块SAS机械硬盘(其中1块是热备盘),组建了2组Mdisk,创建了一个pool。挂载在小型机上作为逻辑盘使用,小型机上安装的AIXSybase。 服务器存储故障: V7…...
冯诺依曼架构与哈佛架构的对比与应用
冯诺依曼架构(Von Neumann Architecture),也称为 冯诺依曼模型,是由著名数学家和计算机科学家约翰冯诺依曼(John von Neumann)在1945年提出的。冯诺依曼架构为现代计算机奠定了基础,几乎所有现代…...
Hive其四,Hive的数据导出,案例展示,表类型介绍
目录 一、Hive的数据导出 1)导出数据到本地目录 2)导出到hdfs的目录下 3)直接将结果导出到本地文件中 二、一个案例 三、表类型 1、表类型介绍 2、内部表和外部表转换 3、两种表的区别 4、练习 一、Hive的数据导出 数据导出的分类&…...
CMake function使用
在 CMake 中,function 用于定义一个可复用的代码块,可以在 CMake 脚本中多次调用。它类似于其他编程语言中的函数。函数内的变量默认是局部的,不会影响外部的变量,除非显式地使用 PARENT_SCOPE 来修改父级作用域中的变量。 基本语…...
【AI学习】Huggingface复刻Test-time Compute Scaling技术
OpenAI ChatGPT o1 背后的关键技术Test-time Compute Scaling,Huggingface实现并开源了! Hugging Face 团队发布了一篇关于“开源模型中的推理阶段计算扩展”(Test-time Compute Scaling) 的研究文章。Hugging Face 团队通过复现…...
前端导出PDF的组件及方法
前端导出PDF的组件及方法 在Web应用程序中,导出PDF文件是一项常见的需求。无论是为了打印、分享还是存档,能够将网页内容转换为PDF格式都非常有用。幸运的是,前端开发者有多种方法和组件可以实现这一功能。在本文中,我们将详细介…...
2025届最火的六大AI辅助论文助手推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当下,学术研究愈发深入,AI论文工具成了科研人员和学生的得力帮手&…...
Hunyuan-MT-7B多场景实践:像素语言传送门在独立游戏开发、字幕生成、文档本地化中的三重应用
Hunyuan-MT-7B多场景实践:像素语言传送门在独立游戏开发、字幕生成、文档本地化中的三重应用 1. 像素语言传送门:当翻译遇见16-bit冒险 在独立游戏开发者的工作台上,一款名为"像素语言传送门"的工具正在改变传统翻译体验。这款基…...
SMUDebugTool:深度控制AMD Ryzen硬件参数的系统调试解决方案
SMUDebugTool:深度控制AMD Ryzen硬件参数的系统调试解决方案 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: http…...
华硕笔记本终极优化指南:用GHelper彻底释放硬件潜能
华硕笔记本终极优化指南:用GHelper彻底释放硬件潜能 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar…...
Amazon Q 从入门到实战,AWS 专属 AI 助手超全指南
目录 一、Amazon Q 到底是什么 二、Amazon Q 有两个版本 1、Amazon Q Developer(给开发者/运维) 2、Amazon Q Bussiness(给企业/业务人员) 三、Amazon Q能解决什么实际问题 四、Amazon Q 和 Chat GPT 同类助手的有什么区别 …...
告别默认丑标签!手把手教你用QGIS 3.28自定义地图标注(附Python脚本)
告别默认丑标签!手把手教你用QGIS 3.28自定义地图标注(附Python脚本) 地图可视化不仅是数据的呈现,更是信息传达的艺术。当你精心准备的地理数据因为默认标签样式而显得平庸时,那种挫败感我深有体会——文字太小看不清…...
Tao-8k本地部署详解:基于Ubuntu系统的环境配置与优化
Tao-8k本地部署详解:基于Ubuntu系统的环境配置与优化 最近有不少朋友在问,怎么在自己的GPU服务器上把Tao-8k这个大家伙跑起来。说实话,第一次部署的时候我也踩了不少坑,从驱动版本不对到端口被占,各种小问题层出不穷。…...
Pixel Aurora Engine 赋能内容运营:社交媒体图文批量创作方案
Pixel Aurora Engine 赋能内容运营:社交媒体图文批量创作方案 1. 新媒体运营的配图痛点 每天打开电脑,新媒体运营小李都要面对同样的挑战:今天发什么图?从封面到内文配图,再到各种节日节气海报,原创设计根…...
Unity中如何通过Shader与Bounds控制实现视锥体外物体渲染
1. 为什么需要控制视锥体外物体渲染 在Unity的默认渲染流程中,摄像机只会渲染位于视锥体(Frustum)范围内的物体,这个机制被称为视锥体剔除(Frustum Culling)。这个优化手段能显著提升渲染效率,避…...
Slim模板在微服务架构中的终极应用指南:分布式系统模板管理最佳实践
Slim模板在微服务架构中的终极应用指南:分布式系统模板管理最佳实践 【免费下载链接】slim Slim is a template language whose goal is to reduce the syntax to the essential parts without becoming cryptic. 项目地址: https://gitcode.com/gh_mirrors/sli/s…...
