某小程序sign关键字逆向分析

声明

本文章所有内容仅用于学习交流,严禁用于其他目的。文中不提供完整代码,抓包内容、敏感网址及数据接口等均已脱敏处理。严禁将相关内容用于商业用途和非法用途,否则由此产生的一切后果与作者无关。未经许可,禁止转载本文,禁止修改后二次传播。擅自使用本文讲解的技术导致的任何意外,作者概不负责。文章为原创,严禁转载。


关于sign关键字总结

对于 sign 关键字,其生成方式一般是将接口信息、查询参数、时间戳(时间戳可能省略)以及自定义字符串(可能省略)进行拼接,然后通过 md5Hmac 加密。之所以拼接自定义字符串,是为了防止仅依据经验直接用接口参数猜测加密规则。

补充

  • 拼接过程中可能涉及对参数进行排序、去重或者 URL 编码,确保生成的字符串在加密时具有唯一性。
  • 有时还会加入一些额外的防篡改机制,例如使用 nonce(一次性随机数)或 salt(盐值)增强加密的安全性。

关于逆向技巧总结

  1. 善用搜索:对关键字进行全局搜索,如 .signsign="sign" 等,通过不同形式缩小目标范围。不确定时,可全部打上断点,后续调试时取消无用断点。

  2. 栈跟踪:这是关键步骤。找到请求发送构造位置,通常请求头关键字、参数加密以及返回结果解密都在此处进行。

  3. 处理莫名参数:若请求构造时未携带某些参数,却突然出现,可能是网站开发者对请求头进行封装以减少请求时代码冗余。此时可搜索关键字 intercepter,或许能有收获。

补充

  • 检查 API 文档:如果有相关的 API 文档,有时可以帮助快速了解请求参数的构成,减少逆向工作量。
  • 逆向工具:使用如 Fiddler、Wireshark 等抓包工具,能够捕捉 HTTP 请求及响应,帮助更好地理解 sign 的构造方式,特别是加密前的数据内容。

实战演练

  1. 全局搜索关键字:在代码中全局搜索关键字 x-serverless-sign,找出所有可能位置并打上断点,方便后续调试。

  2. 定位生成函数:找到 x-serverless-sign 的生成函数,进入函数内部并打上断点继续调试。发现其由字符串加上一个时间戳组成,但不清楚具体处理方法,继续深入函数内部。

  3. 确定加密方式:看到 md5 关键字,基本可确定加密方式。

  4. 对比结果:与在线 MD5 结果进行对比。


补充说明

  • 在分析 sign 签名的生成时,除了常见的 md5HMAC 加密方式外,也有一些接口可能会使用更复杂的加密方法,如 RSA 或 AES 加密,尤其是在涉及更高安全性的场景中。因此,逆向分析时需要注意加密方式的多样性。
  • 下期内容 爬虫框架设计考虑的问题,或者ob混淆。

posted @   牛奶糖牛奶  阅读(79)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示