微信小程序绕过sign签名的技术分享及思路优化

在测试小程序时,经常会遇到sign签名标识,用于验证数据的完整性和真实性。若不了解sign的生成方式,仅仅篡改参数值是无法修改sign的,这将阻碍漏洞测试的进行。本篇将探讨如何绕过小程序的sign标识,以便更好地进行漏洞测试。

0X01 Sign的定义与绕过方法

Sign定义: sign通常用于参数签名,以验证数据传输的合法性,防止参数篡改、伪装、重放以及数据泄露等。一般生成方式包括秘钥、时间戳、特殊字符、随机数等参数经过特定排序后使用加密算法加密。常见加密方法有MD5、AES、SHA等。

绕过sign验证常见手法

  1. 观察sign的格式,尝试解密或者删除字段来绕过验证。
  2. 尝试删除或置空sign字段,观察是否能绕过校验。
  3. 尝试反编译源代码,寻找sign的生成方式。

0X02 测试涉及的工具

解密小程序源码工具:https://share.weiyun.com/uMqNGOXv
反编译小程序工具:https://github.com/ezshine/wxapkg-convertor/releases/tag/1.0.1

0X03 测试细节

  1. 测试小程序:抓包分析,发现sign字段阻止了参数篡改。尝试解密和删除sign字段均无果。决定反编译小程序寻找sign生成方式。
  2. 反编译小程序:使用工具解密并反编译,找到主要的加密函数和调用路径。
  3. 全局搜索加密函数位置:定位到主要的加密函数并分析参数。
  4. 得到sign生成方式:推测出生成方式,即app_id + method + nonce_str + biz_content内容 + token + 固定值。
  5. 测试结果:根据生成方式获得sign值,成功绕过验证。
图片[1]-微信小程序绕过sign签名的技术分享及思路优化-山海云端论坛

0X04 总结

遇到sign标识时,首先尝试观察是否可绕过,然后通过源码分析找到生成方式,从而进一步提升漏洞测试的效率和危害。

图片[2]-微信小程序绕过sign签名的技术分享及思路优化-山海云端论坛
图片[3]-微信小程序绕过sign签名的技术分享及思路优化-山海云端论坛

0X05 拓展–Burpy插件使用

在安全测试中,Burpy插件可用于自动加解密操作,提高测试效率。通过编写自定义的processor函数实现加解密算法,并结合Burpy插件进行测试。

图片[4]-微信小程序绕过sign签名的技术分享及思路优化-山海云端论坛
图片[5]-微信小程序绕过sign签名的技术分享及思路优化-山海云端论坛
图片[6]-微信小程序绕过sign签名的技术分享及思路优化-山海云端论坛
© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容