用途:针对使用 SAML 单点登录的目标进行安全测试,涵盖 IdP 元数据分析、XML 签名包装(XSW)、签名剥离、NameID 注释注入、SAML 响应重放、密钥混淆、受众限制绕过、元数据提取与 Golden SAML 后渗透。
适用判断:目标跳转至 idp.、sso.、login.、auth. 子域;URL 含 SAMLRequest= 或 SAMLResponse=;可访问 /saml2/idp/metadata.php 或 /FederationMetadata/2007-06/FederationMetadata.xml;或在发现 ADFS 后使用。
前置条件:curl、python3、目标 SAML 端点 URL;可选 SAML Raider Burp 扩展。
主要用法:用 curl 探测常见 SAML 路径(SimpleSAMLphp、ADFS、Keycloak、Shibboleth、OIDC 等);抓取并解析 IdP 元数据,提取 entityID、签名证书、SSO 端点与 NameID 格式;对 SAMLRequest 做 base64 解码与 zlib 解压后分析 Issuer、ID、NameIDPolicy;通过响应时间差异做用户枚举;手工构造 XSW 测试。
限制与注意:XSW 需理解 XML 命名空间与规范化,较复杂;SAMLResponse 常超 4000 字符,多用 POST 绑定;若 SP 校验 InResponseTo,重放会失败;签名剥离仅对存在缺陷的 SP 有效;枚举与探测可能触发锁定或封禁,请求间应加 sleep(≥1s)。验证要求:元数据须含 entity ID、签名证书、SSO 端点与 NameID 格式;SAMLRequest 须解码为有效 XML;时序枚举差异应大于 200ms;伪造响应须被 SP 接受并建立会话。资料另列出 ruby-saml、GitLab 相关 CVE 及 Golden SAML 流程与工具(SAML Raider、SAMLReQuest、saml2aws、AADInternals、ESPOOR)。具体目标环境与效果暂未提供。