Arjun: descobrindo parâmetros HTTP ocultos
Arjun · AGPL-3.0
O Arjun encontra parâmetros HTTP que um endpoint aceita mas não anuncia. Ele envia nomes de parâmetro candidatos e observa mudanças no tamanho, status ou conteúdo da resposta que indiquem que a aplicação percebeu. Parâmetros ocultos são desproporcionalmente interessantes porque são os que ninguém escreveu testes ou verificações de autorização.
Instalação
pipx install arjun
# ou
pip install arjun Comandos principais
# parâmetros GET em um endpoint
arjun -u https://example.com/api/v1/user
# POST com corpo JSON
arjun -u https://example.com/api/v1/user -m JSON
# uma lista de endpoints
arjun -i endpoints.txt -oJ arjun.json
# sua própria wordlist — use a que o unfurl produziu
arjun -u https://example.com/api/v1/user -w params.txt
# throttle e autenticação
arjun -u https://example.com/api/v1/user -d 2 --headers "Authorization: Bearer TOKEN" Saída
{"https://example.com/api/v1/user":{"params":["debug","user_id","is_admin"],"method":"GET"}} Onde ele entra no Tandera
O Arjun roda na fase de analyze do recon_web_full e do recon_api. Ele consome a lista de endpoints que katana e linkfinder produziram e o vocabulário de parâmetros que o unfurl extraiu do corpus de URLs.
No recon_api ele alimenta a síntese de shadow-endpoints: parâmetros descobertos em endpoints documentados, comparados contra a especificação da API, são como a superfície não documentada é identificada.
Usando em um pentest
Use o vocabulário da própria aplicação. Wordlists genéricas acham debug e test. O unfurl -u keys sobre o corpus de URLs arquivadas acha acct_ref e tenant_override, que são os que importam.
is_admin, role, debug e impersonate são o jackpot. Um parâmetro oculto que muda uma decisão de autorização é um crítico, não uma divulgação de informação. Teste o que ele faz antes de avaliá-lo.
Faça throttle. O Arjun envia muitas requisições rapidamente. O -d 2 coloca um atraso entre elas; sem isso você vai bater em rate limits e receber falsos negativos, e pode gerar um incidente do lado do cliente.
Confirme à mão. A detecção é heurística — baseada em deltas de resposta. Reproduza cada parâmetro manualmente antes de chegar ao relatório.