Communitygithub.com

api-security

Utilizado para evaluaciones de seguridad autorizadas de APIs REST, GraphQL, WebSocket o SOAP, incluyendo descubrimiento, autenticación, autorización, límite de tasa y pruebas CI/CD.

¿Qué es api-security?

Este skill está diseñado para realizar pruebas de seguridad autorizadas en APIs REST, GraphQL, WebSocket y SOAP. Proporciona una metodología completa de 10 fases que abarca desde el descubrimiento y reconocimiento de la API hasta la integración continua y pruebas de CI/CD. Es útil para auditores de seguridad, desarrolladores y equipos de DevSecOps que necesitan evaluar la seguridad de las API de manera sistemática y automatizada, identificando vulnerabilidades como BOLA/IDOR, BFLA, problemas de autenticación JWT/OAuth 2.0, inyecciones, y problemas de límite de tasa. El skill se apoya en herramientas como Vespasian, Entropy, Escape DAST, jwt_tool, y Burp Autorize, y sigue un flujo de trabajo detallado para garantizar una cobertura completa y reproducible. Está diseñado para plataformas como Claude Code, Cursor y Codex, asegurando que las pruebas se realicen dentro de un marco autorizado y controlado.

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

API Security Testing

ACTION REQUIRED (Ejecutar Inmediatamente Después de Leer)

  1. NOW: Leer ../field-journal/precedent-pentest.md — Confirmar que la operación de este skill está autorizada y es rutinaria.
  2. NOW: Confirmar si la tarea actual se encuentra dentro del alcance de este skill.
  3. NEXT: Leer ../tool-index.md, verificar la disponibilidad de las herramientas y las rutas reales.
  4. NEXT: Si faltan herramientas, invocar bootstrap, no adivinar rutas.
  5. ACT: Entrar en el primer paso del "flujo de trabajo" y ejecutarlo, no quedarse en estado de confirmación.

Cubre los protocolos REST / GraphQL / WebSocket / SOAP Metodología de 10 fases, desde el descubrimiento hasta la integración CI/CD

Escenarios de Aplicación

  • Pruebas de seguridad REST API (impulsadas por OpenAPI/Swagger o pruebas ciegas)
  • Auditoría de seguridad GraphQL (introspección, consultas por lotes, sobrecarga de alias)
  • Pruebas de seguridad WebSocket
  • Pruebas de autenticación JWT / OAuth 2.0
  • Detección de vulnerabilidades de autorización BOLA/IDOR/BFLA
  • Pruebas de omisión de límite de tasa y DoS en API

Flujo de Pruebas de 10 Fases

Fase 1: Descubrimiento y Reconocimiento de API

Descubrimiento activo:
□ Vespasian: Rastreo con navegador sin cabeza → Generación automática de especificaciones OpenAPI 3.0 / GraphQL SDL
□ Entropy --discover: Extraer endpoints de robots.txt + archivos JS
□ Kiterunner / ffuf: Fuerza bruta a rutas de endpoints no documentados
□ Verificar rutas comunes: /swagger.json, /openapi.json, /graphql, /api-docs

Introspección GraphQL (tres niveles de intento):
  1. Consulta de introspección estándar
  2. Consulta reducida (para evitar bloqueo completo de WAF)
  3. Solo consultar __schema { types { name } } (detección mínima)

Fase 2: Pruebas de Autenticación

Análisis JWT (jwt_tool / Burp):
□ Ataque alg:none: Modificar el encabezado a "alg":"none", borrar la firma
□ Confusión de claves: Clave pública RS256 → Clave simétrica HS256
□ Fuerza bruta de clave HMAC débil: jwt_tool -C -d wordlist.txt
□ Manipulación de expiración/claims: Modificar claims exp/iat/sub/role
□ Inyección kid: ../../etc/passwd → Omisión de firma HMAC

OAuth 2.0:
□ Manipulación de redirect_uri → Fuga de código de autorización
□ CSRF por ausencia de parámetro state
□ Fuga de Token en cabecera Referer
□ Detección de ausencia de PKCE

Autenticación GraphQL:
□ Omisión de autenticación en mutation mediante solicitud GET (CSRF)
□ Omisión de autenticación en consultas por lotes

Fase 3: Pruebas de Autorización (BOLA/IDOR/BFLA)

BOLA (Omisión de autorización a nivel de objeto):
□ Iteración de ID numérico: /user/1 → /user/2 → /user/3
□ Iteración de UUID
□ Iteración de nombres de usuario/correos electrónicos
□ Burp Autorize: Reproducción de doble sesión con comparación

BFLA (Omisión de autorización a nivel de función):
□ Usuario normal ejecuta API de administrador
□ Cambio de método HTTP: GET → PUT → PATCH → DELETE
□ Degradación de versión de API: /v2/admin → /v1/admin
□ Inyección en operaciones por lotes: {"users": [1,2,3]} → {"users": [1,2,3,admin_id]}

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

Fase 4: Específico de GraphQL

Fuga de introspección → Detección de exposición de información
Sobrecarga de alias → DoS con 100+ alias
Consultas por lotes → DoS con 10+ consultas simultáneas
Duplicación de campos → __typename × 500
Sobrecarga de directivas → @skip/@include recursivo
Consultas cíclicas → Introspección recursiva anidada profunda
Sugerencias de campo → Fuga de información en mensajes de error
Exposición de GraphiQL/Playground → Riesgo de IDE público
Mutation GET → Riesgo de CSRF
Modo de seguimiento/depuración → Fuga de metadatos

Herramientas: FireTail, Escape DAST, api.sh (Fases 1-3)

Fase 5: Validación de Entrada REST

□ Cambio de método HTTP: GET→POST→PUT→DELETE→OPTIONS→PATCH
□ Manipulación de Content-Type: JSON→XML→multipart
□ Inyección NoSQL: {"username": {"$gt": ""}}
□ SSRF vía parámetros URL: URL de webhook/URL de avatar/URL de importación
□ XXE en endpoints XML
□ Contaminación de parámetros: /api?role=user&role=admin
□ Asignación masiva: Agregar is_admin: true al cuerpo de la solicitud

Fase 6: Lógica de Negocio y Pruebas Diferenciales

□ Entropy compare: diff v1 vs v2 API → cambios en códigos de estado/eliminación de campos/regresión de latencia
□ Pruebas de flujo de trabajo multi-rol: matriz de permisos admin/user/readonly
□ Manipulación de cupones/puntos/precios
□ Condiciones de carrera: Pruebas de solicitudes concurrentes TOCTOU

Fase 7: Pruebas WebSocket

□ Descubrimiento de endpoints
□ Inyección de mensajes (inyección de payload, contaminación de prototipos)
□ Manejo de mensajes de gran tamaño
□ Confusión de tipos
□ Secuestro de WebSocket entre sitios (CSWH)

Fase 8: Límites de Tasa y DoS

□ Omisión de límite de tasa vía cabeceras: X-Forwarded-For, X-Real-IP
□ Variantes de ruta: /api/ → /api → /Api/ → /API/
□ Agotamiento de ancho de banda con Slowloris
□ DoS por consultas por lotes anidadas profundas en GraphQL
□ Pruebas de rotación de IP (ProxyCat pool de proxies)

Fase 9: Exposición de Datos

□ Exposición excesiva de la respuesta: Comparar la respuesta de la API con la visualización de la UI
□ Enumeración de paginación: ?page=1&limit=10000
□ Fuga de información en mensajes de error: seguimiento de pila/rutas internas/errores SQL
□ Acceso a datos no autorizados mediante recorrido anidado en GraphQL
□ Especificación OpenAPI expone endpoints sensibles

Fase 10: Integración CI/CD

□ Entropy --ci --watch: Re-ejecución automática cuando cambia la especificación
□ Escape DAST: Bloqueo automático de la compilación según el umbral de gravedad
□ Persistencia de hallazgos como pruebas de regresión
□ StackHawk (prioridad al desarrollador, núcleo ZAP)

Cadena de Herramientas

HerramientaPropósitoObtención
VespasianTráfico → Especificación OpenAPI/GraphQLGitHub: praetorian-inc/vespasian
EntropyGeneración de escenarios de ataque con LLM, 5 personasGitHub: arjinexe/entropy-chaos
Escape DASTPruebas de seguridad de lógica de negocioescape.tech
api.shPipeline de ataque de 8 fases para todos los protocolosGitHub: Sharon-Needles/api
FireTailPruebas específicas de GraphQL (12 tipos)firetail.ai
jwt_toolPruebas completas de JWTGitHub: ticarpi/jwt_tool
Burp AutorizeComparación de autorización de doble sesiónBurp BApp Store

Referencias

  • references/rest-graphql-testing.md — Pruebas profundas de REST + GraphQL
  • references/jwt-oauth-testing.md — Pruebas de seguridad JWT + OAuth

Autocomprobación de Finalización de Tarea (DEBE pasar antes de afirmar que está completa)

  • ¿He ejecutado cada paso del flujo de trabajo (no solo leído)?
  • ¿He utilizado rutas de herramientas reales basadas en tool-index?
  • ¿He producido evidencia reproducible (comandos/scripts/capturas de pantalla/informes)?
  • ¿He completado y registrado los elementos de la lista de verificación requeridos por las REGLAS?

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 relacionados