[\[EN-ReadMe\]](https://github.com/Sugobet/API_Sword/blob/main/%5BEN%5D-README.md) <------ veuillez lire ceci
WeChat officiel : APT250
Fidèle au principe de l'open source avant tout et de l'échange d'apprentissage, API Sword sera open source dans deux semaines (après le 7 septembre) et sera également mis en ligne sur le magasin officiel de plugins Burp, BApp Store, pour faciliter les mises à jour et l'utilisation futures. Actuellement, le code est en cours de révision officielle, et il sera bientôt disponible sur le BApp Store.
[Nouveau plugin classique burp] API Sword - collecte automatique et approfondie des API dans diverses réponses
Le fichier jar est disponible en release, il sera aussi téléchargeable depuis le magasin officiel de plugins Burp après mise en ligne.
Avant-propos
Ce plugin combine mon travail récent et une partie de mon expérience acquise lors d’un bug bounty de 40 000 dollars sur des failles d’API dans des comptes Microsoft,
Les développeurs d’API Sword ont obtenu plusieurs résultats et des zero-day généraux grâce à cet outil. Depuis que je possède cet outil, je ne cherche plus péniblement manuellement dans aucun JS les interfaces, chemins et paramètres.

Comparé à de nombreux outils populaires comme JS Finder, URLFinder pour l’extraction de js et api, ils sont d’excellents outils, mais API Sword tire sa force et son avantage des caractéristiques de Burp.
Capture d’écran de la page principale du plugin :
Fonctionnalités principales d’API Sword
API Sword est entièrement automatique avec prévention des boucles, il extrait les API et fichiers JS dans une plage spécifiée à partir de diverses réponses, puis effectue une extraction récursive en profondeur des API, en initiant activement des requêtes API, JS et autres fichiers utiles.
Le résultat API est WYSIWYG, la fenêtre de droite affiche le JS source de l’API, permettant d’obtenir immédiatement les informations sur les paramètres de l’API depuis le JS, puis Burp peut les tester directement avec Ctrl + R.
Ce n’est pas aussi complexe que l’on pourrait l’imaginer, API Sword réduit surtout pour nous une grande quantité de recherches répétitives, longues et fastidieuses de js, api et paramètres d’api.
- API Sword capture le trafic dans la plage configurée dans Burp et extrait la grande majorité des liens des réponses HTTP
- API Sword nettoie les liens et chemins extraits, puis détermine et initie activement des requêtes GET, POST sur les API, JS, etc.
- API Sword traite les réponses des requêtes actives, extrait plus d’informations et répète cette opération, avec prévention des boucles pour éviter les requêtes infinies
- API Sword envoie toutes les requêtes API, réponses et fichiers JS sources associés dans l’interface Burp d’API Sword
- API Sword ajoute automatiquement toutes les requêtes concernées dans le sitemap cible de Burp, vous pouvez alors pleinement profiter des analyses et fonctionnalités du sitemap avec les résultats d’API Sword
Pour des raisons de sécurité opérationnelle (opsec), API Sword ne fuzz pas activement les paramètres pour l’instant, cette fonctionnalité pourra être ajoutée ultérieurement en option si besoin.
Comment utiliser ?
Remarque : Le plugin doit fonctionner sur BurpSuite version 2024.7 ou supérieure ; (pour les versions inférieures à 2024.7, il faut manuellement désactiver la fonction "Utiliser les en-têtes d'origine" dans la page des paramètres du plugin)
L'utilisation de l'API Sword est très simple,
- Installer le plugin sur une version de Burp 2024 ou ultérieure, s'assurer qu'aucune erreur ne survient
- Définir le périmètre pour le plugin
- Ouvrir le navigateur en s'assurant que le trafic passe par Burp
- Naviguer sur le site cible, cliquer et tester tout ce que l'on voit sur le site
- Après un certain temps, vérifier les résultats dans le Sitemap de l'API Sword
Configuration de l'API Sword
Dans l'onglet Scope, nous pouvons définir la portée, qui peut être une URL, un domaine ou une IP
Cette portée est particulièrement importante, il est conseillé de réfléchir attentivement, sinon vous risquez de scanner à l'extérieur de la cible.
Une fois la portée définie, passons à l'onglet Setting
- Autoriser les requêtes actives vers l'API
- Utiliser les en-têtes d'origine
- Arrêter immédiatement l'envoi de toutes les requêtes
- Effacer toutes les données actuelles du SiteMap

- Activer le taux de requêtes HTTP actives
- Ajouter un chemin personnalisé supplémentaire lors des requêtes actives
- Filtrer les codes de réponse personnalisés non 200
- Permettre à API Jian de rechercher activement le baseURL dans la réponse et de concaténer activement le chemin au baseURL
- Ajouter des champs d'en-tête personnalisés : (écrase automatiquement les champs d'en-tête existants)
- Activer la contournement des accès aux interfaces dangereuses (l'interface contenant la chaîne sera ignorée)
- Enregistrer la portée et tous les paramètres
- Ajouter un chemin personnalisé supplémentaire après l'interface API et avant les paramètres
- Contrôle du nombre de threads
Remerciements
Merci à Microsoft
Merci à mon mentor de Green Alliance
Merci à mil1ln
Merci à 探姬
Merci à tous ceux qui ont apporté des conseils précieux et des retours pendant la phase de test d'API Jian
Merci à tous ceux qui ont soutenu API Jian !
TODO
- Collecter un polo de la marque Meihua K ⬛️
- Ajouter un fuzzing optionnel du chemin base url ✅
- Ajouter un filtrage personnalisé des codes de réponse ✅
- Ajouter une option de chemin base personnalisé lors des requêtes actives avec API Sword ✅
- Optimiser la stratégie de correspondance, débloquant 80% des performances d'API Sword ✅
- Optimiser les requêtes actives d'API Sword pour éviter l'accès aux API dangereuses ✅
- Résoudre le problème du header par défaut de Burp ne contenant pas le champ CT ✅
- Optimiser la largeur des tags dans le tableau des réponses ✅
- Corriger le clignotement de l'UI du sitemap ✅
- Ajouter une fonctionnalité optionnelle d'en-têtes personnalisés ✅
- Ajouter le tri automatique des tags dans la liste des réponses ✅
- Optimiser la stratégie de correspondance ✅
- Optimiser les blocs de code ⬛️
- Enregistrer la gestion de la désinstallation de Burp ✅
- Ajouter des commentaires de code bilingues (chinois-anglais) dans tout le code ⬛️
- Ajouter une fonction de basculement bilingue dans l'interface graphique ✅
- Optimiser les problèmes de blocage et de rendu de Burp causés par l'interface graphique ✅
- Ajouter la fonction de sauvegarde des portées et configurations ✅
- Ajouter la fonction de taux de requêtes HTTP actives ✅
- Ajouter la fonctionnalité multithread ✅
- Ajouter une fonction de chemin personnalisé avant les paramètres de l'interface ✅
- Correction urgente du dysfonctionnement de la logique anti-boucle causée par le multithreading ✅
- Corriger les erreurs d'affichage du tri automatique ✅
- Optimiser l'UI de la liste d'API, les flèches directionnelles ne perturbent plus la saisie lors de l'insertion des données ✅
- Corriger définitivement le bug de la logique anti-boucle défaillante due au multithreading ✅
- Ajouter un filtre ✅
- Ajouter les fonctions d'expansion et de repli de tous les nœuds ✅
- Optimiser la fonction de nettoyage du sitemap ✅
- Optimiser la logique de concaténation JS dans CDN/cross-site en utilisant le referer comme baseUrl ✅
- Ajouter une fonction de scan manuel, le scan manuel ajoute automatiquement l'hôte à la liste des portées : clic droit sur un corps de requête dans Burp -> Extensions -> API Sword -> API Scan ✅