Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
HTTPSignatures — Une extension Burp Suite implémentant le brouillon draft-ietf-httpbis-message-signatures-01 de la spécification Signing HTTP Messages. | Kitploit
Outils/GitHubGitHub/nccgroup/httpsignatures
Proxies Web et InterceptionTests de Sécurité des APISécurité WebCryptographieAuthentificationSécurité des API
GitHubnccgroup/httpsignatures

HTTPSignatures

Une extension Burp Suite implémentant le brouillon draft-ietf-httpbis-message-signatures-01 de la spécification Signing HTTP Messages.

Voir le dépôt
4210il y a 4 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

Extension Burp Suite HTTPSignatures

HTTPSignatures est une extension Burp Suite qui implémente le brouillon de spécification Signing HTTP Messages draft-ietf-httpbis-message-signatures-01. Cela permet aux utilisateurs de Burp Suite de tester en toute transparence les applications qui nécessitent des signatures HTTP.

Fonctionnalités

  • Crée automatiquement une nouvelle signature et un nouveau digest dans Burp Repeater, Intruder et Scanner lorsque l'extension détecte un en-tête de signature HTTP existant.
  • Prend en charge l'algorithme rsa-sha256 pour la signature des messages (RSASSA-PKCS1-v1_5 [RFC8017] utilisant SHA-256 [RFC6234]) et SHA-256 pour l'en-tête de digest.
  • L'extension fonctionne dans Burp Suite Professional et dans l'édition gratuite Burp Suite Community Edition.

Utilisation

Installation

Téléchargez le fichier de la dernière version JAR et ajoutez-le dans Burp Suite via l'onglet Extender / Extensions / Add.

Configuration

  1. Après le chargement de l'extension, un nouvel élément de menu HTTP Signatures sera ajouté à Burp.
  2. Ouvrez l'onglet de configuration (cliquez sur l'élément de menu HTTP Signatures).
  3. La configuration minimale requiert que le Header Name, le keyId et le Private key file name and path soient configurés. Voir ci-dessous pour la description détaillée.
  4. Vous pouvez maintenant utiliser Burp Proxy, Repeater, Intruder et Scanner. L'extension créera une nouvelle signature pour chaque requête contenant le Header Name configuré.

Utilisation

Après la configuration correcte de HTTPSignatures, l'extension Burp Suite remplacera la valeur de l'en-tête HTTP configurée dans le paramètre Header Name (par exemple Signature) par une nouvelle signature pour chaque requête HTTP envoyée via Burp Proxy, Repeater, Intruder et Scanner.

Configuration de HTTPSignatures

Documentation

L'extension Burp Suite doit être configurée avant de pouvoir être utilisée. La configuration de HTTPSignatures se trouve dans le menu Burp après son chargement (généralement à droite du menu Help). Le Header Name, le keyId et le Private key file name and path doivent être correctement configurés pour que l'extension fonctionne. Les paramètres restants peuvent être ajustés facultativement.

  • Header Name : (exemples de valeurs : Authorization, Signature) : Le nom de l'en-tête de requête HTTP qui contient la signature. Le brouillon de l'IETF utilise le nom d'en-tête Signature. Oracle Cloud (OCI) utilise le nom d'en-tête Authorization.

  • keyId : Le paramètre keyId est une chaîne US-ASCII utilisée par un vérificateur pour identifier et/ou obtenir la clé de vérification de la signature. Des exemples de valeurs peuvent ressembler à https://mastodon.example.com/users/myUser (pour ActivityPub) ou ocid1.tenancy.oc1.../ocid1.user.oc1.../{fingerprint} pour OCI.

  • Private key file name and path : Le chemin complet et le nom du fichier contenant la clé privée (par exemple /home/${USER}/private_key.pem).

  • Digest Header Name : Le nom de l'en-tête contenant le digest. Il doit s'agir soit de x-content-sha256 (pour OCI), soit de digest pour la plupart des autres implémentations.

Profils

La configuration de HTTPSignatures permet de configurer plusieurs profils dans des onglets. Créez un nouvel onglet en cliquant sur l'onglet .... Vous pouvez nommer les onglets en double-cliquant sur un onglet. Pour enregistrer un onglet, cliquez sur le bouton "Save". Pour marquer un onglet comme profil actif, cliquez sur le bouton "Use this profile". L'onglet actif (profil) est marqué avec une police et une bordure rouges.

Paramètres de configuration globaux

La section de configuration globale contient des paramètres qui s'appliquent à tous les profils.

  • Enable the extension for the following Burp Suite tools : L'extension peut être activée ou désactivée pour les outils Burp Suite suivants :

    • Proxy (défaut : désactivé)
    • Scanner (défaut : activé)
    • Intruder (défaut : activé)
    • Repeater (défaut : activé)

    Le proxy est désactivé par défaut. Les autres outils sont activés par défaut. L'outil proxy ne devrait généralement être activé que lors de l'utilisation de la fonctionnalité d'interception. L'extension ne mettra pas à jour la signature lorsqu'elle est désactivée.

  • Enable Debug Logs : Activer cette case à cocher imprimera les journaux de débogage sur la sortie standard. La sortie peut être configurée dans Burp Suite sous Extender -> Extensions, puis sélectionnez l'extension Signing HTTP Messages. Dans l'onglet Output, vous pouvez sélectionner l'endroit où la sortie standard sera affichée. La valeur par défaut est Shown in UI, où la sortie sera affichée dans Burp Suite.

Exemples de configurations

ActivityPub

ActivityPub utilise les signatures HTTP pour l'authentification et l'autorisation de serveur à serveur.

  • Header Name: Signature
  • keyId : Le keyId doit être lié à l'acteur afin que le champ publicKey puisse être récupéré : https://mastodon.online/users/viktor. Vous pouvez utiliser curl pour récupérer la clé : 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)

Toutes les requêtes API Oracle Cloud Infrastructure (OCI) exigent des signatures HTTP. L'implémentation est basée sur le brouillon de spécification avec quelques modifications.

  • Header Name: Authorization
  • keyId : <TENANCY OCID>/<USER OCID>/<KEY FINGERPRINT>, par exemple 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

Compilation avec IntelliJ IDEA

  1. Clonez ce dépôt et Open or Import le dossier HTTPSignatures dans IntelliJ IDEA.
  2. Compilez le projet (Build -> Build Project)
  3. Créez un fichier JAR à importer dans Burp Suite : allez dans File -> Project Structure, sélectionnez Project Settings -> Artifacts.
  4. Cliquez sur le signe plus pour créer un nouveau fichier JAR "From modules with dependencies" et cliquez sur OK.
  5. Sélectionnez la case "Include in project build" pour créer automatiquement un fichier JAR lors de la compilation du projet, puis cliquez sur OK.
  6. Recompilez le projet (Ctrl+F9 ou ⌘+F9).
  7. Le fichier JAR est créé dans le dossier du projet à l'emplacement out/artifacts/HTTPSignatures_jar/HTTPSignatures.jar.
  8. Chargez le fichier JAR dans Burp via l'onglet Extender -> Extensions -> Add.

Compilation en ligne de commande avec Maven

  1. Clonez ce dépôt.
  2. Compilez le projet et créez un fichier JAR avec la commande mvn package assembly:single.
  3. Le fichier JAR est créé dans le dossier du projet à l'emplacement target/HTTPSignatures-1.0-SNAPSHOT-jar-with-dependencies.jar.
  4. Chargez le fichier JAR dans Burp via l'onglet Extender -> Extensions -> Add.

Dépendances

Trois dépendances sont nécessaires pour compiler le projet Java :

  • Apache HttpClient (https://hc.apache.org/httpcomponents-client-ga/)
  • Tomitribe's HTTP Signatures Java Client (https://github.com/tomitribe/http-signatures-java)
  • Burp Extender API (https://github.com/PortSwigger/burp-extender-api)
Télécharger l’outil
  • Header Names to Sign: GET : Les noms d'en-têtes à inclure pour les requêtes GET (par exemple date (request-target) host). La valeur (request-target) est un identifiant spécial composé de la méthode de requête, du chemin et de la partie query de l'URI de la requête (par exemple get /foo?param=value).

  • Header Names to Sign: HEAD : Les noms d'en-têtes à inclure dans les requêtes HEAD (par exemple date (request-target) host).

  • Header Names to Sign: DELETE : Les noms d'en-têtes à inclure dans les requêtes DELETE (par exemple date (request-target) host).

  • Header Names to Sign: PUT : Les noms d'en-têtes à inclure dans les requêtes PUT (par exemple date (request-target) host content-length content-type digest).

  • Header Names to Sign: POST : Les noms d'en-têtes à inclure dans les requêtes POST (par exemple date (request-target) host content-length content-type digest).

  • Include query parameters in Signature : Cette valeur booléenne spécifie si les paramètres de requête (par exemple ?param=value) doivent être inclus dans la signature. Bien que le brouillon de norme spécifie que les paramètres de requête font partie de l'identifiant (request-target), toutes les implémentations n'incluent pas les paramètres de requête. La valeur par défaut est true.

  • Include the port in Signature : Certaines implémentations n'incluent pas le port dans l'en-tête host (par exemple localhost:8080). Ce paramètre permet de supprimer le port de la valeur de l'en-tête host s'il est défini sur false. La valeur par défaut est true.

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