当前位置: 首页 > news >正文

Sign签证绕过

Sign的简介

Sign是指一种类似于token的东西 他的出现主要是保证数据的完整性,防篡改  就是一般的逻辑是 sign的加密的值和你输入的数据是相连的(比如sign的加密是使用输入的数据的前2位数字配合SHA1 等这样的) 

绕过 :碰运气可以置空   最常见的就是找到sign的算法逻辑然后进行反推 (因为这个签证是需要在前端验证的 所以前端有他的生成逻辑)

实验一 认识Sign和他的功能以及基本的绕过方式

靶场环境是 yakit的自带靶场  需要进行下载使用

配置 建议是使用本机的ip 不要使用 localhost 或者127

这个验证第一关

输入内容检测

响应多了点东西   一般不就只有你登录之后判断你的账号密码是否正确   但是这个是首要判断的是 你的签证是否正确

本地抓包

发现荷载 多了几个 sign和key这些数据

根据xhr路径 直接进行搜寻

向上一番找 :

中间涉及到了key但是我们不知道啊  不知道就是搜索就完了

找到原生的key         Tostring之后的key是16进制的 但是我们需要的就是 16进制的key所以key就是  3开头的那个  其实调试也可以得出

word是什么 就是我们提交的账号密码啊  这说明sign的一个特点 1、为了保证数据的完整性(一旦我们进行修改 一下账号密码但是使用的是 上一次的 sign 就会报错签名验证失败)

开始模拟 sign的加密逻辑  :根据加密逻辑进行模拟

然后响应包 :

这样其实就是我们可以预知到 sign了 比如我们要进行爆破 密码是xiaodi

我们知道了正确的密码但是如果不知道 sign的话是登录不了的  

这样就能预支我们改密码的同时修改sign就可以了

实验二 复杂性的sign加密练习

kaoshibao.com

这个的sign和上边的差别很大

这个sign是在 hppt.header上的  他的作用就是确保这个 考试宝的数据的唯一性 不让进行大规模的改包,发包

像这样的一大串 程序的这样的我们一般就是尝试  xhr断点

就看这个 根据这个 encry的数据进行判断 堆栈中sign的位置

得到sign的算法  : 

h = _s()(o + c + r + n + o)

先找参数o

12b6bb84e093532fb72b4d65fec3f00b

c: 类似于等于 cookie中的uu值

值  '1a1db471-e071-4796-babc-ff48ded474dd'

r:  r = t.url.replace("/api", "")  也是固定的值

n: n = (new Date).getTime()          使用时间戳

o:12b6bb84e093532fb72b4d65fec3f00b

前面的函数 :

                return function(t) {return new Md5(!0).update(t)[e]()}

类似于进行MD5的数据 

实际上这个sign的验证就是看看你访问他的这个api是不是实施的这样子其实可以防护 csrf 确保用户数据的完整性  sign是根据cookie进行算法的 所以就和token是一样类型的

总结 :

h = _s()(o + c + r + n + o)
_s() 进行MD5加密
o是固定的值 :12b6bb84e093532fb72b4d65fec3f00b
c是cookie中 uu的数值 :1a1db471-e071-4796-babc-ff48ded474dd
r :  /finalCategory/getSecondCatAndThirdSons
n : n = (new Date).getTime()  获取当前的时间戳

让ai帮我们写脚本模拟发包 然后呈现数据的回显 :

拿下了   u8fd0\u7ef4\u4e09\u79cd\u4eba 都是汉字需要对脚本返回的内容进行 utf 加密

http://www.xdnf.cn/news/563257.html

相关文章:

  • MyBatis 关联映射与多表查询实战教程
  • 人工智能在生物医学研究中的创新应用
  • 基于两阶段交互控制框架的互联多能系统协同自治优化
  • JVM 与容器化部署调优实践(Docker + K8s)
  • 如何在Java中处理PDF文档(教程)
  • 【C/C++】探索单例模式:线程安全与性能优化
  • MySQL Host 被封锁解决方案(全版本适用 + Java 后端优化)
  • 制作跨平台AppImage包的方法
  • 基于STM32的智能台灯_自动亮度_久坐提醒仿真设计(Proteus仿真+程序设计+设计报告+讲解视频)
  • SQLMesh 宏操作符详解:@IF 的条件逻辑与高级应用
  • React---day1
  • asp.net web form nlog的安装
  • 9.PostgreSQL初体验
  • Flink SQL 计算实时指标同比的实现方法
  • vue3使用 Tailwind CSS (4.多版本)
  • UML 图的细分类别及其应用
  • virtualbox选项“启用套嵌vt-x/amd-v“不可用
  • 【论文阅读 | CVPR 2024 |RSDet:去除再选择:一种用于 RGB - 红外目标检测的由粗到精融合视角】
  • 论文篇-1.2.如何读好一篇论文
  • [实战]用户系统-1-基础功能完善
  • 笔记:NAT
  • 【笔记】排查并解决Error in LLM call after 3 attempts: (status code: 502)
  • 支持向量机(SVM):分类与回归的数学之美
  • 鸿蒙UI开发——Builder与LocalBuilder对比
  • 目标检测:YOLO 模型详解
  • 跨部门项目管理优化:告别邮件依赖
  • 提示词工程(Prompt Engineering)是智能Agent交互中不可或缺的一环
  • AI数字人一体机和智慧屏方案:开启智能交互新纪元
  • LeetCode 649. Dota2 参议院 java题解
  • 数独求解器3.0 增加latex格式读取