Arjun: descubriendo parámetros HTTP ocultos
Arjun · AGPL-3.0
Arjun encuentra parámetros HTTP que un endpoint acepta pero no anuncia. Envía nombres de parámetro candidatos y observa cambios en el tamaño, status o contenido de la respuesta que indiquen que la aplicación lo notó. Los parámetros ocultos son desproporcionadamente interesantes porque son aquellos para los que nadie escribió pruebas ni comprobaciones de autorización.
Instalación
pipx install arjun
# o
pip install arjun Comandos principales
# parámetros GET en un endpoint
arjun -u https://example.com/api/v1/user
# POST con cuerpo JSON
arjun -u https://example.com/api/v1/user -m JSON
# una lista de endpoints
arjun -i endpoints.txt -oJ arjun.json
# tu propia wordlist — usa la que produjo unfurl
arjun -u https://example.com/api/v1/user -w params.txt
# throttle y autenticación
arjun -u https://example.com/api/v1/user -d 2 --headers "Authorization: Bearer TOKEN" Salida
{"https://example.com/api/v1/user":{"params":["debug","user_id","is_admin"],"method":"GET"}} Dónde encaja en Tandera
Arjun se ejecuta en la fase de analyze de recon_web_full y recon_api. Consume la lista de endpoints que katana y linkfinder produjeron y el vocabulario de parámetros que unfurl extrajo del corpus de URLs.
En recon_api alimenta la síntesis de shadow-endpoints: los parámetros descubiertos en endpoints documentados, comparados contra la especificación de la API, son cómo se identifica la superficie no documentada.
Uso en un pentest
Usa el vocabulario de la propia aplicación. Las wordlists genéricas encuentran debug y test. unfurl -u keys sobre el corpus de URLs archivadas encuentra acct_ref y tenant_override, que son los que importan.
is_admin, role, debug e impersonate son el premio gordo. Un parámetro oculto que cambia una decisión de autorización es un crítico, no una divulgación de información. Prueba lo que hace antes de calificarlo.
Haz throttle. Arjun envía muchas solicitudes rápidamente. -d 2 pone un retraso entre ellas; sin eso te toparás con rate limits y obtendrás falsos negativos, y puedes generar un incidente del lado del cliente.
Confirma a mano. La detección es heurística — basada en deltas de respuesta. Reproduce cada parámetro manualmente antes de que llegue al informe.