用途:面向 SAML / SSO 的攻击面梳理与测试记录,用于在授权范围内发现单点登录实现缺陷,SSO 问题通常可评 High–Critical。
主要能力与思路: 一、攻击面发现。用 grep 从 urls.txt 中筛 saml、sso、login.redirect、oauth、idp、sp,重点端点如 /saml/acs、/sso/saml、/auth/saml/callback。 二、XML Signature Wrapping(XSW)。在签名保持有效的前提下搬迁已签名元素位置或注入伪造 Assertion,改变 NameID。 三、注释注入。在 NameID 中插入注释边界,例如 admin@company.com<!---->.evil.com,利用签名方 C14N 与应用文本提取对注释处理不一致制造身份差异,资料引用 CVE-2017-11428、CVE-2016-5697。 四、签名剥离。echo "BASE64" | base64 -d | xmllint --format - > saml.xml,删除 <Signature>,改 NameID,再 base64 -w0 重编码后提交;POST 绑定为原始 base64,Redirect 绑定使用 raw DEFLATE 而非 gzip。 五、XXE。在 Assertion 中引入 DOCTYPE 与 file:///etc/passwd 外部实体并置于 NameID。 六、NameID 操纵。测试 admin@company.com、administrator@company.com、support@target.com、已披露报告中的邮箱及 ${77}(SSTI)。 七、解析器差异与多签名。不同解析器在注释边界、空白规范化、实体展开顺序、CDATA 处理上存在差异;部分 SP 接受多个 ds:Signature,可复制合法签名包裹新断言。资料同时列出 XSW2–XSW8 变体及探测载荷,并给出 key confusion 变体:当 SP 信任多个 IdP 且不校验 Issuer、AudienceRestriction 时,攻击者自控 IdP 签发的断言可能被接受。
使用方式:可用 SAMLRaider(Burp 扩展,BApp Store)自动化 XSW 测试,或手工解码、编辑、base64 重编码,必要时 URL 编码后作为 SAMLResponse 参数发送。
分级:XSW 成功、签名剥离为 Critical;注释注入、断言 XXE 为 High;NameID 操纵为 Medium/High。
限制:资料未提供具体环境搭建、授权要求与完整复现步骤;相关 CVE 编号仅作引用。该技能为文档型测试指引,不保证对目标有效,仅应在获得授权的范围内使用。