Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
XSW — XML Signature Wrapping Burp Suite 扩展 | Kitploit
工具/GitHubGitHub/d0ge/xsw
漏洞扫描器漏洞利用Web应用程序漏洞利用API安全测试Web安全渗透测试身份与访问管理 (IAM)身份验证红队
GitHubd0ge/xsw

XSW

XML Signature Wrapping Burp Suite 扩展

239510个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
分享

XML 签名包装(XSW)Burp Suite 扩展

XSW Burp Suite 扩展可自动化探测 SAML 端点是否存在签名包装漏洞的过程。

使用方法

  1. 在 Burp Suite 中右键点击认证请求,选择“WRAP Attack”。
  2. 配置对话框参数并开始测试。
  3. 该扩展会自动生成多个精心构造的 XML 载荷,并将其发送到目标端点。
  4. 结果会记录在 Burp Suite 的 Extensions Organizer 标签页中,以供进一步分析。

设置

  • Name ID - 要冒充的用户身份(通常是电子邮件地址)。
  • Assertion URL(目标)- 可选。 要作为目标的断言消费者服务(ACS)URL,如果它尚未包含在 AuthnRequest 中。
  • Metadata URL(签名 XML 来源)- 可选。 指向已签名元数据文档的 URL(通常是 IdP 的已签名元数据)。
  • Timeout - 可选。 请求之间的延迟,单位为毫秒。
  • Always Refresh Metadata - 可选。 启用后,该扩展会为每个测试用例获取一份新的已签名元数据文档。

攻击

该扩展会探测多类签名包装漏洞,包括:

  • Attribute Pollution - libxml2 与 REXML 之间的解析器差异。
  • Namespace Confusion - 基于命名空间重定义和前缀歧义的绕过。
  • Void Canonicalization - 利用 libxml2 c14n 的限制

示例

Golden-SAMLResponse.xml

参考

该扩展受 SAMLRaider 扩展启发,并 基于研究论文中介绍的技术: The Fragile Lock: Novel Bypasses for SAML Authentication,作者为 Zak Fedotkin

演示

以下 gitlab-ee:17.8.4 docker-compose 项目可用于复现该问题,仅用于演示目的。 将以下内容替换为你自己的 IdP 值:

  • idp_cert_fingerprint: "<idp_cert_fingerprint>"
  • idp_sso_target_url: "<idp_sso_target_url>"
version: '3.6'
services:
  gitlab:
    image: gitlab/gitlab-ee:17.8.4-ee.0
    container_name: gitlab
    restart: always
    hostname: 'gitlab.lab.local'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://gitlab.lab.local'
        nginx['listen_port'] = 443
        nginx['redirect_http_to_https'] = true
        nginx['ssl_certificate'] = "/etc/ssl/certs/gitlab/server-cert.pem"
        nginx['ssl_certificate_key'] = "/etc/ssl/certs/gitlab/server-key.pem"
        nginx['ssl_protocols'] = "TLSv1.1 TLSv1.2"
        nginx['logrotate_frequency'] = "weekly"
        nginx['logrotate_rotate'] = 52
        nginx['logrotate_compress'] = "compress"
        nginx['logrotate_method'] = "copytruncate"
        nginx['logrotate_delaycompress'] = "delaycompress"
        gitlab_rails['gitlab_shell_ssh_port'] = 2424
        gitlab_rails['omniauth_allow_single_sign_on'] = ['saml']
        gitlab_rails['omniauth_block_auto_created_users'] = false
        gitlab_rails['omniauth_auto_link_saml_user'] = true
        gitlab_rails['omniauth_providers'] = [
          {
            name: "saml",
            label: "Okta login",
            args: {
              assertion_consumer_service_url: "https://gitlab.lab.local/users/auth/saml/callback",
              idp_cert_fingerprint: "<idp_cert_fingerprint>",
              idp_sso_target_url: "<idp_sso_target_url>",
              issuer: "https://gitlab.lab.local",
              name_identifier_format: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
            }
          }
        ]
    ports:
      - '80:80'
      - '443:443'
      - '2424:22'
    volumes:
      - '/srv/gitlab/config:/etc/gitlab'
      - '/srv/gitlab/logs:/var/log/gitlab'
      - '/srv/gitlab/data:/var/opt/gitlab'
      - './volume_data/ssl:/etc/ssl/certs/gitlab'
    shm_size: '256m'
下载工具