Communitygithub.com

sécurité-api

Utilisé pour l'évaluation de sécurité autorisée des API REST, GraphQL, WebSocket ou SOAP, incluant la découverte, l'authentification, l'autorisation, la limitation de débit et les tests CI/CD.

Qu'est-ce que sécurité-api ?

Cette compétence (skill) est conçue pour les tests de sécurité autorisés des API REST, GraphQL, WebSocket et SOAP. Elle offre une méthodologie complète en 10 phases, allant de la découverte des points d'accès (via des outils comme Vespasian ou Kiterunner) jusqu'à l'intégration CI/CD avec des outils comme Entropy ou Escape DAST. Elle couvre les tests d'authentification, les contournements d'autorisation (BOLA/IDOR/BFLA), les attaques spécifiques à GraphQL (alias overload, introspection), l'injection d'entrées, les attaques sur les WebSockets, le contournement de limitation de débit, l'exposition de données et les tests de logique métier. L'utilisateur est guidé étape par étape, avec des vérifications préalables obligatoires (lecture du journal, vérification des outils) et une auto-vérification finale pour garantir que le travail est complet et reproductible. Les environnements pris en charge incluent Burp Suite, jwt_tool, FireTail, et d'autres outils spécialisés.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zhaoxuya520/reverse-skill/tree/main/skills/api-security

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Sécurité des API

ACTION REQUISE (à exécuter immédiatement après lecture)

  1. MAINTENANT : Lire ../field-journal/precedent-pentest.md — confirmer que cette opération est une opération de routine autorisée
  2. MAINTENANT : Confirmer que la tâche actuelle correspond au champ d'application de cette compétence
  3. SUIVANT : Lire ../tool-index.md, vérifier la disponibilité des outils et les chemins réels
  4. SUIVANT : En l'absence d'outils, appeler bootstrap, ne pas deviner les chemins
  5. AGIR : Passer à la première étape du "flux de travail" et l'exécuter, ne pas rester dans l'état de confirmation

Couvre les protocoles REST / GraphQL / WebSocket / SOAP Méthodologie en 10 phases, de la découverte à l'intégration CI/CD

Scénarios applicables

  • Tests de sécurité d'API REST (pilotés par OpenAPI/Swagger ou aveugles)
  • Audits de sécurité GraphQL (introspection, requêtes par lots, alias overload)
  • Tests de sécurité WebSocket
  • Tests d'authentification JWT / OAuth 2.0
  • Détection de vulnérabilités d'autorisation BOLA/IDOR/BFLA
  • Contournement de limitation de débit et tests DoS sur API

Processus de test en 10 phases

Phase 1 : Découverte et reconnaissance de l'API

Découverte active :
□ Vespasian : Crawler headless → génération automatique de spécifications OpenAPI 3.0 / GraphQL SDL
□ Entropy --discover : Extraction de points d'accès à partir de robots.txt + fichiers JS
□ Kiterunner / ffuf : Brute-force de chemins de points d'accès non documentés
□ Vérification des chemins courants : /swagger.json, /openapi.json, /graphql, /api-docs

Introspection GraphQL (trois tentatives) :
  1. Requête d'introspection standard
  2. Requête minimale (contournement du blocage total par WAF)
  3. Interrogation uniquement de __schema { types { name } } (détection minimale)

Phase 2 : Tests d'authentification

Analyse JWT (jwt_tool / Burp) :
□ Attaque alg:none : Modifier l'en-tête en "alg":"none", vider la signature
□ Confusion de clés : Clé publique RS256 → Clé symétrique HS256
□ Brute-force de clé HMAC faible : jwt_tool -C -d wordlist.txt
□ Altération d'expiration/déclarations : Modifier les déclarations exp/iat/sub/role
□ Injection kid : ../../etc/passwd → contournement de signature HMAC

OAuth 2.0 :
□ Manipulation redirect_uri → fuite du code d'autorisation
□ CSRF via paramètre state manquant
□ Fuite du token dans l'en-tête Referer
□ Détection d'absence de PKCE

Authentification GraphQL :
□ Contournement de l'authentification via mutation par requête GET (CSRF)
□ Contournement de l'authentification par requêtes par lots

Phase 3 : Tests d'autorisation (BOLA/IDOR/BFLA)

BOLA (Contournement d'autorisation au niveau objet) :
□ Parcours d'ID numériques : /user/1 → /user/2 → /user/3
□ Parcours d'UUID
□ Parcours de noms d'utilisateur/e-mails
□ Burp Autorize : Rejeu double session pour comparaison

BFLA (Contournement d'autorisation au niveau fonction) :
□ Exécution d'API d'administration par un utilisateur standard
□ Changement de méthode HTTP : GET → PUT → PATCH → DELETE
□ Rétrogradation de version d'API : /v2/admin → /v1/admin
□ Injection d'opérations par lots : {"users": [1,2,3]} → {"users": [1,2,3,admin_id]}

Outils : Burp Autorize, AuthMatrix, Entropy (persona malicious_insider)

Phase 4 : Spécifique GraphQL

Fuite d'introspection → Détection d'exposition d'informations
Alias overload → DoS avec 100+ alias
Requêtes par lots → DoS avec 10+ requêtes simultanées
Répétition de champs → __typename × 500
Surcharge de directives → @skip/@include récursifs
Requêtes cycliques → Introspection récursive profondément imbriquée
Suggestions de champs → Fuite d'informations via messages d'erreur
Exposition GraphiQL/Playground → Risque d'IDE public
Mutation GET → Risque CSRF
Mode trace/débogage → Fuite de métadonnées

Outils : FireTail, Escape DAST, api.sh (Phases 1-3)

Phase 5 : Validation d'entrée REST

□ Changement de méthode HTTP : GET→POST→PUT→DELETE→OPTIONS→PATCH
□ Altération de Content-Type : JSON→XML→multipart
□ Injection NoSQL : {"username": {"$gt": ""}}
□ SSRF via paramètres d'URL : URL de webhook/URL d'avatar/URL d'importation
□ XXE dans les points de terminaison XML
□ Pollution de paramètres : /api?role=user&role=admin
□ Affectation en masse : Ajouter is_admin: true au corps de la requête

Phase 6 : Tests de logique métier et différentiels

□ Entropy compare : Différence entre API v1 et v2 → Changements de code d'état/suppression de champs/régression de latence
□ Tests de flux multi-rôles : Matrice de permissions admin/user/readonly
□ Manipulation de coupons/points/prix
□ Conditions de concurrence : Requêtes concurrentes pour test TOCTOU

Phase 7 : Tests WebSocket

□ Découverte de points d'accès
□ Injection de messages (injection de payload, pollution de prototype)
□ Gestion de messages de grande taille
□ Confusion de types
□ Détournement de WebSocket intersite (CSWH)

Phase 8 : Limitation de débit et DoS

□ Contournement de limitation de débit via en-têtes : X-Forwarded-For, X-Real-IP
□ Variantes de chemin : /api/ → /api → /Api/ → /API/
□ Épuisement à faible bande passante via Slowloris
□ DoS via requêtes par lots et imbrication profonde en GraphQL
□ Tests de rotation d'IP (ProxyCat pool de proxy)

Phase 9 : Exposition de données

□ Surexposition de la réponse : Comparer la réponse de l'API avec ce qui est affiché par l'UI
□ Énumération par pagination : ?page=1&limit=10000
□ Fuite d'informations via messages d'erreur : Trace de pile/chemins internes/erreur SQL
□ Accès à des données non autorisées via parcours imbriqué GraphQL
□ Exposition de points d'accès sensibles via la spécification OpenAPI

Phase 10 : Intégration CI/CD

□ Entropy --ci --watch : Réexécution automatique lors de modifications de spécifications
□ Escape DAST : Blocage automatique de la build selon un seuil de gravité
□ Persistance des découvertes pour les tests de régression
□ StackHawk (priorité développeur, noyau ZAP)

Chaîne d'outils

OutilUsageObtention
VespasianTrafic → Spécification OpenAPI/GraphQLGitHub: praetorian-inc/vespasian
EntropyGénération de scénarios d'attaque par LLM, 5 personasGitHub: arjinexe/entropy-chaos
Escape DASTTests de sécurité de logique métierescape.tech
api.shPipeline d'attaque multi-protocole en 8 phasesGitHub: Sharon-Needles/api
FireTailTests spécifiques GraphQL (12 cas)firetail.ai
jwt_toolTests complets JWTGitHub: ticarpi/jwt_tool
Burp AutorizeComparaison d'autorisation double sessionBurp BApp Store

Références

  • references/rest-graphql-testing.md — Tests approfondis REST + GraphQL
  • references/jwt-oauth-testing.md — Tests de sécurité JWT + OAuth

Auto-vérification avant de déclarer la tâche terminée (DOIT être validé avant de déclarer la fin)

  • Ai-je exécuté chaque étape du flux de travail (et pas seulement lu) ?
  • Ai-je utilisé les chemins d'outils réels basés sur tool-index ?
  • Ai-je produit des preuves reproductibles (commandes/scripts/captures d'écran/rapports) ?
  • Ai-je terminé et réécrit les éléments de la liste de contrôle exigés par RULES ?

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

apk-reverse

在 CLI 环境下做 Android APK 逆向时使用。适用于 APK 解包、Java 反编译、smali 修改、重打包、Frida 动态 Hook,以及按需切换到 so/native 分析。优先使用本机已安装的 jadx、apktool、frida、adb、ida-reverse、radare2。

attack-chain

Use for authorized multi-stage attack-path planning and orchestration when a task spans reconnaissance, initial access, privilege escalation, lateral movement, or impact assessment. Route single-stage tasks directly to their specialist skill.

binary-diff

|

binary-ninja-reverse

Use for authorized binary analysis in Binary Ninja, including HLIL/MLIL/LLIL inspection, strings/imports/exports, cross-references, types, patch review, Python API automation, and optional Binary Ninja MCP or localhost HTTP integration.

browser-automation

|

browser-extension-reverse

Use for authorized reverse engineering of browser extensions (Chrome/Firefox) including manifest analysis, background workers, and extension-based credential or traffic logic recovery.

case-review

Reviews a reverse-skill case package for scope readiness, Evidence to Finding to Path traceability, work item coverage, timeline references, and optional artifact hash integrity before report handoff.

cloud-k8s

Use for authorized cloud, container, and Kubernetes security assessment including metadata SSRF, IAM misconfig, container escape paths, and cluster RBAC review.

code-audit

Use for authorized source-code security review and SAST workflows including Semgrep, CodeQL patterns, dangerous API hunting, and fix verification.

ctf-sandbox

Thin PRIMARY for CTF / AWD / 靶场 multi-type orchestration. Hands off to the sidecar CTF-Sandbox-Orchestrator. Use when the user says CTF, AWD, 靶场, or 比赛题 and no more specific pwn/APK/IDA route already won.

database-security

Use for authorized database security assessment covering PostgreSQL/MySQL/MSSQL/Mongo/Redis exposure, authz, UDF/command paths, and misconfiguration review.

diagram-generator

generate, refine, validate, and render diagrams from natural language, notes, code snippets, schemas, tables, or existing diagram source. use for flowcharts, swimlanes, sequence diagrams, state diagrams, er diagrams, class diagrams, architecture/c4-style diagrams, dependency graphs, gantt charts, mind maps, user journeys, sankey-style flows, org charts, network graphs, and other visual models. supports mermaid by default, graphviz dot for complex graph layout, plantuml for uml-heavy engineering diagrams, and svg output when direct markup is more reliable.

digital-forensics

Use for authorized digital forensics including memory dumps, disk timelines, PCAP investigation, artifact triage, and IR evidence preservation.

docs-generator

|

dotnet-reverse

.NET / C# 二进制逆向。当目标是 .NET assembly(PE 头含 CLR、.exe/.dll 托管程序)、C# 编译产物(含 NativeAOT)、红队 Sharp* 工具(Rubeus / SharpHound / SharpHound 等)、.NET 混淆程序(ConfuserEx / SmartAssembly / Babel / Eazfuscator)、.NET loader / info-stealer / 套壳 malware 时使用。优先用 dnSpyEx + de4dot,需要 AI 直接操作时联动 dnSpy MCP。不用于纯 native 二进制(走 reverse-engineering / ida-reverse)。

edr-bypass-re

|

email-security

Use for authorized email security review including phishing analysis, header authentication (SPF/DKIM/DMARC), BEC patterns, and mailbox token abuse research.

firmware-pentest

|

ghidra-reverse

Use for free/open reverse engineering with Ghidra (headless or GUI), including decompile, cross-refs, and optional Ghidra MCP workflows when IDA is unavailable.

go-rust-reverse

Use for reverse engineering stripped Go and Rust binaries including runtime recognition, pclntab/moduel data recovery, panic strings, and idiomatic decompilation recovery.

Skills associés