文章总结: 本文探讨渗透测试中应对sign签名参数的策略。Sign机制通过验证防伪码阻断篡改攻击。测试流程包括识别未签名参数、删除sign或添加额外参数绕过。文章指出sign常配合timestamp与nonce防重放,导致并发测试困难。建议遇到强防护时优先寻找不含sign的功能点。 综合评分: 68 文章分类: 渗透测试,WEB安全,SRC活动,实战经验
渗透测试遇到sign签名的应对流程
原创
游山玩水 游山玩水
山水SRC
2026年3月10日 09:59 河南
概述
本文讲解了在渗透测试中遇到请求包中包含sign参数该如何测试漏洞
理解sign签名参数对测试影响
想象您要进入一个小区(访问服务器数据),小区有个门卫(sign签名验证机制)
它让“硬闯”变得不可能
- 以前(无Sign):您可以直接伪造一张门禁卡(修改请求参数)尝试混进去。
- 现在(有Sign):门卫不光看卡,还会用专门的机器(密钥)验证卡上的加密防伪码(
sign)。您自己胡乱修改参数后,防伪码对不上,门卫立刻就能识破。这直接封死了最原始的篡改攻击路径。(sign是根据数据包中的某些参数加密后生成的)
如果想要测试修改的参数被用于sign的参数加密,那么就无法修改该参数(比如测越权漏洞)
测试流程
①判断sign签名参数由哪些参数加密生成的,如果删除某参数后,返回 “签名无效” 错误,则表明它参与了签名生成;如果返回 “参数缺失” 等业务错误,则它可能未被签名保护,是重点测试对象。理想状态下就是想要修改的参数与sign签名无关
②当想要修改的参数与sign有关
可以尝试删除/置空sign参数
③添加额外参数admin=1(我认为存在可能性不高)
sign的生成肯定不包含自己添加的参数,因此可以尝试
比如sign=xxxx->sign=xxxx&admin=1(变成了管理员权限)
知识补充
①sign签名往往和timestamp和 nonce参数一起出现(出现就测不了并发)
timestamp:防止数据包长时间有用
nonce:防止数据包重发,当数据包被发送后,nonce值会被记录,该数据包就没法再用了(避免并发漏洞),nonce是随机生成的值
如图中所示两个一样操作,但是sign、timestamp、nonce都改变了
②遇到sign参数大概测测就跑路吧,寻找不包含sign功能点的数据包,感觉遇到sign参数没有很好的应对点,导致很多常规漏洞的测试都没法进行
③写这篇文章的原因是我测试时发现只要遇到存在sign参数的情况下去测试别的类型漏洞都手束无策,比如并发漏洞、越权漏洞等
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:山水SRC 游山玩水 游山玩水《渗透测试遇到sign签名的应对流程》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论