
Ferramenta de teste de autorização web multi-thread que avalia privilégios de usuário verificando o acesso de tokens de sessão em uma lista de URLs, destacando potenciais problemas de controle de acesso quebrado.
SessionProbe é uma ferramenta de pentest multithread projetada para auxiliar na avaliação de privilégios de usuários em aplicações web. Ela usa o token de sessão de um usuário e verifica uma lista de URLs para saber se o acesso é possível, destacando potenciais problemas de autorização. SessionProbe deduplica listas de URLs e fornece logs em tempo real e acompanhamento de progresso.
SessionProbe foi feita para ser usada com a funcionalidade "Copy URLs in this host" do Burp Suite na aba Target (disponível na Community Edition gratuita).
Nota: Talvez você queira alterar o filter na aba do para incluir arquivos ou imagens. Caso contrário, essas não seriam copiadas pelo "Copy URLs in this host" e não seriam testadas pelo .
TargetBurpURLsSessionProbeA ajuda está embutida!
sessionprobe --help — exibe a ajuda.Usage:
sessionprobe [flags]
Flags:
-u, --urls string file containing the URLs to be checked (required)
-H, --headers string HTTP headers to be used in the requests in the format "Key1:Value1;Key2:Value2;..."
-h, --help help for sessionprobe
--ignore-css ignore URLs ending with .css (default true)
--ignore-js ignore URLs ending with .js (default true)
-o, --out string output file (default "output.txt")
-p, --proxy string proxy URL (default: "")
-r, --filter-regex string exclude HTTP responses using a regex. Responses whose body matches this regex will not be part of the output.
-l, --filter-lengths string exclude HTTP responses by body length. You can specify lengths separated by commas (e.g., "123,456,789").
--skip-verification skip verification of SSL certificates (default false)
-t, --threads int number of threads (default 10)
--check-all Check POST, DELETE, PUT & PATCH methods (default false)
--check-delete Check DELETE method (default false)
--check-patch Check PATCH method (default false)
--check-post Check POST method (default false)
--check-put Check PUT method (default false)
Examples:
./sessionprobe -u ./urls.txt
./sessionprobe -u ./urls.txt --out ./unauthenticated-test.txt --threads 15
./sessionprobe -u ./urls.txt -H "Cookie: .AspNetCore.Cookies=<cookie>" -o ./output.txt
./sessionprobe -u ./urls.txt -H "Authorization: Bearer <token>" --proxy http://localhost:8080
./sessionprobe -u ./urls.txt -r "Page Not Found"
./sessionprobe -u ./urls.txt -H "Cookie: .AspNetCore.Cookies=<cookie>;Cookie: <another-cookie>=<another_value>"
URLs.docker run -it --rm -v "$(pwd):/app/files" --name sessionprobe fw10/sessionprobe [flags]
URLs deve estar no diretório atual e seu arquivo de saída também estará neste diretório.listener do Burp rodando em todas as interfaces se quiser usar a opção --proxygo run .go builddocker build . -t fw10/sessionprobego test ou go test -v (para mais detalhes).css, .js), e exibe o tamanhoBurpResponses with Status Code: 200
https://example.com/<some-path> => Length: 12345
https://example.com/<some-path> => Length: 40
...
Responses with Status Code: 301
https://example.com/<some-path> => Length: 890
https://example.com/<some-path> => Length: 434
...
Responses with Status Code: 302
https://example.com/<some-path> => Length: 0
...
Responses with Status Code: 404
...
Responses with Status Code: 502
...
Releases contém alguns binários já compilados para que você não precise compilar a ferramentaMac, seu Mac pode exibir um aviso ("cannot be opened because it is from an unidentified developer")
Configuração)Se você encontrar um erro, por favor, abra uma Issue aqui mesmo no GitHub, e tentarei resolvê-la em tempo hábil.