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

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
HTTPSignatures — 一个实现 Signing HTTP Messages draft-ietf-httpbis-message-signatures-01 草案的 Burp Suite 扩展。 | Kitploit
工具/GitHubGitHub/nccgroup/httpsignatures
Web代理与拦截API安全测试Web安全密码学身份验证API 安全
GitHubnccgroup/httpsignatures

HTTPSignatures

一个实现 Signing HTTP Messages draft-ietf-httpbis-message-signatures-01 草案的 Burp Suite 扩展。

查看仓库
4210214年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

HTTPSignatures Burp Suite 扩展

HTTPSignatures 是一个 Burp Suite 扩展,实现了 Signing HTTP Messages draft-ietf-httpbis-message-signatures-01 规范草案。 这使得 Burp Suite 用户能够无缝测试需要 HTTP Signatures 的应用程序。

功能特性

  • 当扩展检测到现有的 HTTP Signature 头时,会自动在 Burp Repeater、Intruder 和 Scanner 中创建新的签名和摘要。
  • 支持使用 rsa-sha256 算法对消息进行签名(RSASSA-PKCS1-v1_5 [RFC8017],使用 SHA-256 [RFC6234]),并支持使用 SHA-256 生成摘要头。
  • 该扩展可在 Burp Suite Professional 和免费的 Burp Suite Community Edition 中运行。

使用方法

安装

下载最新的 JAR 发行版文件,然后通过 Extender 选项卡 / Extensions / Add 将其添加到 Burp Suite 中。

配置

  1. 加载扩展后,Burp 中会新增一个 HTTP Signatures 菜单项。
  2. 打开配置选项卡(点击 HTTP Signatures 菜单项)。
  3. 最低配置要求设置 Header Name、keyId 和 Private key file name and path。详见下文说明。
  4. 现在您可以使用 Burp Proxy、Repeater、Intruder 和 Scanner 了。 扩展将为每个包含所配置 Header Name 的请求创建新的签名。

使用方法

在 HTTPSignatures 正确配置后,该 Burp Suite 扩展会将 Header Name 设置中配置的 HTTP 头值(例如 Signature)替换为新的签名,适用于通过 Burp Proxy、Repeater、Intruder 和 Scanner 发送的每个 HTTP 请求。

HTTPSignatures 配置

文档

Burp Suite 扩展必须先进行配置才能使用。 HTTPSignatures 的配置可以在加载后于 Burp 菜单中找到(通常在 Help 菜单的右侧)。 必须正确配置 Header Name、keyId 和 Private key file name and path,扩展才能正常工作。 其余设置可根据需要调整。

  • Header Name:(示例值:Authorization、Signature):包含签名的 HTTP 请求头的名称。 IETF 草案使用 Signature 作为头名称。Oracle Cloud (OCI) 使用 Authorization 作为头名称。

  • keyId:keyId 参数是一个 US-ASCII 字符串,验证方使用它来识别和/或获取签名的验证密钥。 示例值可以类似于 https://mastodon.example.com/users/myUser(用于 ActivityPub)或 ocid1.tenancy.oc1.../ocid1.user.oc1.../{fingerprint}(用于 OCI)。

  • Private key file name and path:包含私钥的完整路径和文件名(例如 /home/${USER}/private_key.pem)。

  • Digest Header Name:包含摘要的头的名称。应为 x-content-sha256(用于 OCI)或大多数其他实现使用的 digest。

  • Header Names to Sign: GET:GET 请求中要包含的头名称(例如 date (request-target) host)。 (request-target) 值是一个特殊标识符,由请求方法以及请求 URI 的路径和查询组成(例如 )。

配置文件(Profiles)

HTTPSignatures 配置允许在选项卡中配置多个配置文件(profiles)。 点击 ... 选项卡可创建新选项卡。 双击选项卡可为其命名。 点击 "Save" 按钮保存选项卡。 要将某个选项卡标记为活动配置文件,请点击 "Use this profile" 按钮。 活动选项卡(配置文件)以红色字体和边框标记。

全局配置设置

全局配置部分包含适用于所有配置文件的设置。

  • Enable the extension for the following Burp Suite tools:可为以下 Burp Suite 工具启用或禁用扩展:

    • Proxy(默认:禁用)
    • Scanner(默认:启用)
    • Intruder(默认:启用)
    • Repeater(默认:启用)

    Proxy 默认禁用。其他工具默认启用。Proxy 工具通常只应在使用拦截功能时启用。当扩展被禁用时,它不会更新签名。

  • Enable Debug Logs:启用此复选框会将调试日志打印到标准输出。 输出可以在 Burp Suite 的 Extender -> Extensions 中配置,然后选择 Signing HTTP Messages 扩展。 在 Output 选项卡中,您可以选择标准输出的显示位置。 默认是 Shown in UI,即输出将显示在 Burp Suite 内部。

示例配置

ActivityPub

ActivityPub 使用 HTTP Signatures 进行服务器到服务器的认证和授权。

  • Header Name: Signature
  • keyId: keyId 应链接到 actor,以便能够检索 publicKey 字段:https://mastodon.online/users/viktor。 您可以使用 curl 检索密钥:curl https://mastodon.online/users/viktor -H 'Accept: application/activity+json'|jq
  • Private key file name and path: /home/user/private_key.pem
  • Digest Header Name: digest
  • Header Names to Sign: GET: date (request-target) host
  • Header Names to Sign: HEAD: date (request-target) host
  • Header Names to Sign: DELETE: date (request-target) host
  • Header Names to Sign: PUT: date (request-target) host content-length content-type digest
  • Header Names to Sign: POST: date (request-target) host content-length content-type digest

Oracle Cloud Infrastructure (OCI)

所有 Oracle Cloud Infrastructure (OCI) API 请求都要求使用 HTTP Signatures。 该实现基于草案规范并做了一些修改。

  • Header Name: Authorization
  • keyId: <TENANCY OCID>/<USER OCID>/<KEY FINGERPRINT>,例如 ocid1.tenancy.oc1..<unique_ID>/ocid1.user.oc1..<unique_ID>/<key_fingerprint>
  • Private key file name and path: /home/user/private_key.pem
  • Digest Header Name: x-content-sha256
  • Header Names to Sign: GET: date (request-target) host
  • Header Names to Sign: HEAD: date (request-target) host
  • Header Names to Sign: DELETE: date (request-target) host
  • Header Names to Sign: PUT: date (request-target) host content-length content-type x-content-sha256
  • Header Names to Sign: POST: date (request-target) host content-length content-type x-content-sha256
  • Include query parameters in Signature: true

使用 IntelliJ IDEA 构建

  1. 克隆此仓库,并在 IntelliJ IDEA 中 Open or Import HTTPSignatures 文件夹。
  2. 编译项目(Build -> Build Project)
  3. 创建要在 Burp Suite 中导入的 JAR 文件:转到 File -> Project Structure,选择 Project Settings -> Artifacts。
  4. 点击加号,从 "From modules with dependencies" 创建新的 JAR 文件,然后点击 OK。
  5. 选中 "Include in project build" 复选框,以便在构建项目时自动创建 JAR 文件,然后点击 OK。
  6. 再次构建项目(Ctrl+F9 或 ⌘+F9)。
  7. JAR 文件创建于项目文件夹中的 out/artifacts/HTTPSignatures_jar/HTTPSignatures.jar。
  8. 通过 Extender 选项卡 -> Extensions -> Add 在 Burp 中加载该 JAR 文件。

使用 Maven 在命令行构建

  1. 克隆此仓库。
  2. 使用命令 mvn package assembly:single 编译项目并创建 JAR 文件。
  3. JAR 文件创建于项目文件夹中的 target/HTTPSignatures-1.0-SNAPSHOT-jar-with-dependencies.jar。
  4. 通过 Extender 选项卡 -> Extensions -> Add 在 Burp 中加载该 JAR 文件。

依赖项

构建该 Java 项目需要三个依赖项:

  • Apache HttpClient (https://hc.apache.org/httpcomponents-client-ga/)
  • Tomitribe 的 HTTP Signatures Java Client (https://github.com/tomitribe/http-signatures-java)
  • Burp Extender API (https://github.com/PortSwigger/burp-extender-api)
下载工具
get /foo?param=value
  • Header Names to Sign: HEAD:HEAD 请求中要包含的头名称(例如 date (request-target) host)。

  • Header Names to Sign: DELETE:DELETE 请求中要包含的头名称(例如 date (request-target) host)。

  • Header Names to Sign: PUT:PUT 请求中要包含的头名称(例如 date (request-target) host content-length content-type digest)。

  • Header Names to Sign: POST:POST 请求中要包含的头名称(例如 date (request-target) host content-length content-type digest)。

  • Include query parameters in Signature:该布尔值指定是否应将查询参数(例如 ?param=value)包含在签名中。 虽然草案标准规定查询参数是 (request-target) 标识符的一部分,但并非所有实现都包含查询参数。 默认值为 true。

  • Include the port in Signature:某些实现不在 host 头中包含端口(例如 localhost:8080)。 如果此设置设为 false,则允许从 host 头值中移除端口。 默认值为 true。

  • Include query parameters in Signature: true
  • Include the port in Signature: true
  • Include the port in Signature: true