在一些关键业务接口,系统通常会对请求参数进行签名验证,一旦篡改参数服务端就会提示签名校验失败。在黑盒渗透过程中,如果没办法绕过签名校验,那么就无法进一步深入。

微信小程序的前端代码很容易被反编译,一旦签名加密算法和密钥暴漏,找到参数的排序规则,那么就可以篡改任意数据并根据算法伪造签名。下面我们将通过两个简单的小程序参数签名绕过的案例,来理解签名逆向的过程。


01、常见签名算法

首先呢,我们需要理解的是,加密和签名是两回事,加密是为了防止信息泄露,而签名的目的是防止数据被篡改。

哈希算法的不可逆,以及非对称算法(私钥签名,公钥验签),为签名的实现提供了必要的前提。常见的签名算法,如:

MD5、SHA1、SHA256、HMAC-SHA1、HMAC-SHA256、MD5WithRSA、SHA1WithRSA 、SHA256WithRSA等。

各种签名示例如下:

可以看到常见的HASH签名算法输出长度是固定的,RSA签名长度取决于密钥大小,输出相对较长。那么,通过签名的字符长度,我们可以简单的判断出系统所使用的签名算法。

02、MD5签名绕过

绕过接口参数签名验证相关推荐

  1. php webapi验签,Asp.netCore3.0 WebApi从0到1手摸手教你写【5】增加接口参数签名验证...

    通过前几个教程的学习,对webapi的编写基本上就可以入门了,可以做项目了,今天我们再给接口加个参数签名认证,之前的接口相当于赤果果的暴露在了网络上,只要知道接口地址.接口调用方式和传参就可以畅所欲为 ...

  2. 【业务安全03】密码找回业务安全以及接口参数账号修改实例(基于metinfov4.0平台)

    目录 1 密码找回安全测试 1.1 验证码方面 1.1.1 验证码客户端回显测试 1.1.2 验证码暴力破解 1.1.3 验证码重复利用 1.2 Cookie.Session.Token方面 1.2. ...

  3. 偏前端 - vue-cli(axios请求数据==》token+按接口参数顺序(参数值拼接base64)- MD5)...

    token+按接口参数顺序(参数值拼接base64)-> MD5) 请教于"喵咪",再此特别鸣谢!~ 特别强调:import qs from qs; 这个内部方法一定要用哦. ...

  4. 如何优雅的实现 Spring Boot 接口参数加密解密?

    点击关注公众号,Java干货及时送达 加密解密本身并不是难事,问题是在何时去处理?定义一个过滤器,将请求和响应分别拦截下来进行处理也是一个办法,这种方式虽然粗暴,但是灵活,因为可以拿到一手的请求参数和 ...

  5. SpringBoot实现通用的接口参数校验

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:cipher juejin.im/post/5af3c25b ...

  6. java 接口参数验证_SpringBoot实现通用的接口参数校验

    作者:cipher 来源:http://39sd.cn/560BA 本文介绍基于Spring Boot和JDK8编写一个AOP,结合自定义注解实现通用的接口参数校验. 缘由 目前参数校验常用的方法是在 ...

  7. php api 无符号整数基数为16的整数参数的字符串表示形式,[1.12]-参数规则:接口参数规则配置 | PhalApi(π框架) - PHP轻量级开源接口框架 - 接口,从简单开始!...

    "播下一种思想,收获一种行为:播下一种行为,收获一种习惯:播下一种习惯,收获一种性格:播下一种性格,收获一种命运." --<成君忆:水煮三国> 1.12.1 参数解析 ...

  8. 示范对外接口参数文档

    示范接口参数文档 模块一 1.说明 文档主要提供的是与系统对接时参数的相关说明.以下几点需要注意: 1.  系统间交互参数以JSON格式进行传输: 2.  加签验签:系统会给接入者提供秘钥,发送请求需 ...

  9. aop+注解 实现对实体类的字段校验_SpringBoot实现通用的接口参数校验

    来自:掘金,作者:cipher 链接:https://juejin.im/post/5af3c25b5188253064651c76 原文链接:http://www.ciphermagic.cn/sp ...

最新文章

  1. VS2015:安装适用于windows桌面的visual c++2015
  2. JAVA:贪吃蛇源代码
  3. 微软CEO:别被Google的TPU诱惑,Kinect“复活” | Build 2018
  4. linux 卸载系统服务,Linux卸载系统自带的httpd的方法
  5. 闲聊libhybris
  6. SQL Server数据表提示NOLOCK和READPAST
  7. pcb 布线电容 影响延时_浅谈PCB布局布线对TVS防护效果的影响
  8. 程序员的需要掌握的数学知识
  9. PAgP协议与LACP协议
  10. Intel网卡MAC地址更改方法
  11. 对接腾讯广告平台系统开发(半自动化广告投放系统)
  12. 【AI数学原理】函数求导(精髓篇)
  13. Mac Apache php 配置域名
  14. python通过cookie跳过登录
  15. 倾斜摄影 镜头畸变校准_什么是风景摄影的最佳镜头?
  16. Node开发后台API接口项目
  17. 《看不见的森林:林中自然笔记》书摘一
  18. 固定资产管理条码系统是什么
  19. 展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告
  20. 编程之美--1的数目

热门文章

  1. 互联网最大谣言:程序员35岁必淘汰?今天我就来击碎他!
  2. 杭电ACM 1713 相遇周期
  3. 用PaddlePaddle预测土壤含氮量
  4. MacOS对文件夹加密的方法
  5. Android kotlin自定义自动换行LinearLayout
  6. 【笔记】Java - mapstruct 转换VO、DTO、PO
  7. java定时执行(设置每天几点执行一次)
  8. Linux sleep和 usleep睡眠函数的使用
  9. easyui SWFUpload
  10. 用 Splashtop Wired XDisplay HD 让 ipad做电脑扩展屏幕