用途:hunt-saml 属于安全测试技能,针对 SAML 与 SSO 认证流程中的解析差异与信任校验缺陷,帮助在授权范围内排查可能导致账户接管的高危问题。
主要能力:
- XML 签名包装(XSW):在保持签名对已签名元素有效的前提下,通过移动或重复 Assertion,使服务提供方读取到攻击者可控的断言。
- NameID 注释注入:利用签名端 C14N 与业务端文本提取对注释处理不一致,使实际生效身份与签名覆盖值不同,资料提及 CVE-2017-11428、CVE-2016-5697。
- 签名剥离:删除 Signature 元素并修改 NameID,测试服务端是否强制验签;POST 绑定为原始 base64,Redirect 绑定为原始 DEFLATE(非 gzip)。
- 断言中的 XXE:通过 DOCTYPE 实体读取文件等资源。
- NameID 操控:测试 admin@、administrator@、support@ 及 ${7*7} 等值。
使用方式:先定位 SAML 端点,例如用 grep 在 urls.txt 中匹配 saml、sso、idp、sp 等;关注 /saml/acs、/sso/saml、/auth/saml/callback。可用 SAMLRaider(Burp 扩展)做自动化 XSW 测试。手工解码与再编码示例:echo "BASE64" | base64 -d | xmllint --format - > saml.xml;编辑后 base64 -w0 saml.xml,必要时再做 URL 编码。
适用场景:SSO 集成、联邦身份认证、服务提供方断言校验逻辑的授权测试,以及与其他技能组合使用。
限制:资料未提供具体平台、授权范围、收费或效果数据;相关攻击与严重度评级仅在获得明确授权的测试中使用。仅修改非安全属性且未跨授权边界的 XML 操作不应按高危认定。