Open Redirect

Open Redirect

Uma vulnerabilidade de Open Redirect ou Redirecionamento Aberto ocorre quando uma aplicação web permite que um usuário controle o redirecionamento ou encaminhamento do site para outra URL de forma arbitrária.

A OWASP classifica essa vulnerabilidade como Unvalidated Redirects and Forwards e também existe o CWE-601: Redirection to Untrusted Site (‘Open Redirect’) para a documentação dessa vulnerabilidade.

Um atacante pode explorar essa falha ao alterar um parâmetro na URL do site vulnerável, adicionando uma URL maliciosa que, ao ser acessada pelos usuários, pode redirecioná-los para sites de phishing ou com malware, comprometendo a segurança dos dados dos usuários e a confiança na aplicação.

Atacantes utilizam esta técnica pois podem ter mais credibilidade com as vítimas ao enviar uma URL que é famosa, familiar ou reconhecida.

Explorando vulnerabilidade Open Redirect

Agora veremos como explorar a vulnerabilidade Open Redirect ou Redirecionamento aberto de forma manual e também realizando Fuzzing através do Burp Suite.

Para realizar os exemplos abaixo estamos utilizando a DVWA(Damn Vulnerable Web Application) .

Identificando um entry point

A primeira coisa a se fazer é identificar um parâmetro interessante para realizar fuzzing ou testes manuais. Os mais comuns de serem achados em uma URL são:

?next={payload}
?url={payload}
?target={payload}
?dest={payload}
?destination={payload}
?redir={payload}
?redirect_uri={payload}
?redirect_url={payload}
?redirect={payload}
/redirect/{payload}
/out/{payload}
/out?{payload}
?to={payload}
?go={payload}
?return={payload}
?returnTo={payload}
?return_to={payload}
?checkout_url={payload}
?continue={payload}
?return_path={payload}

Caso você tenha instalado o DVWA, por exemplo, encontrará uma URL semelhante a:

http://localhost/DVWA/vulnerabilities/open_redirect/source/low.php?redirect=

Neste caso, o parâmetro redirect é um alvo interessante.

Explorando manualmente

Para realizar uma POC (Proof of Concept ou Prova de Conceito) você pode utilizar o comando curl :

Info

O domínio dvwa.ironlinux.com.br não é público e representa uma instalação comum do DVWA.

curl -I http://dvwa.ironlinux.com.br/DVWA/vulnerabilities/open_redirect/source/low.php?redirect=https://blog.ironlinux.com.br
Open Redirect DVWA CURL

Como é possível identificar na imagem acima, após enviar a requisição em questão, recebemos o HTTP Status 302 (Movido temporariamente) e o destino (location) foi a URL https://blog.ironlinux.com.br .

Com Burp

O Burp pode auxiliar na exploração dessa vulnerabilidade através do módulo Intruder.

Depois de enviar a URL possivelmente vulnerável para o Intruder, basta realizar os seguintes procedimentos:

  1. Selecione o conteúdo do parâmetro que deseja realizar o fuzzing e clique em Add
Open Redirect Burp Suite
  1. Clique na aba Payloads e cole os payloads desejados (No fim deste post foram colocados alguns) e clique em Attack para iniciar o fuzzing
Redirecionamento aberto Burp
  1. Depois de finalizado, basta identificar quais requisições tiveram HTTP Status 302 na resposta
Open redirect fuzzing

Onde encontrar payloads para executar o Fuzzing

Você pode utilizar o Google ou o compilado de payloads lists abaixo:

https://raw.githubusercontent.com/harm0nious/open-redirect-payloads/main/payloads.txt

Como alguns sites possui whitelist nos domínios de destino do redirecionamento, é necessário subtituir o texto site-em-whitelist.com.br para outro domínio desejado. Por exemplo, para alterar para outro-site.com.br basta executar:

curl https://raw.githubusercontent.com/harm0nious/open-redirect-payloads/main/payloads.txt | sed 's|site-em-whitelist.com.br|outro-site.com.br|g'

Como se prevenir da vulnerabilidade Open Redirect

Para se prevenir dessa vulnerabilidade você poderá realizar as seguintes ações:

  • Verificar se realmente é necessário ter um redirecionamento via URL
  • Validar os parâmetros que podem ser alterados pelo usuário
  • Criar uma whitelist das URLs que podem receber o redirecionamento
  • Utilizar um WAF para detecção e mitigação do problema
  • Criar uma notificação para que o usuário saiba que está sendo redirecionado para outra página

Por fim, agradecemos a leitura e esperamos que este post tenha te ajudado de alguma maneira! Caso tenha alguma dúvida, entre em contato conosco pelo Telegram , Facebook ou Instagram ! Veja mais posts no IronLinux !

Posts relacionados

Entendendo logs HTTP

Entendendo logs HTTP

Entender Logs HTTP é uma parte vital da administração de servidores web.

Ler post completo
Bypass do Defender utilizando substituição de strings

Bypass do Defender utilizando substituição de strings

Substituição de strings é uma das técnicas utilizadas para realizar bypass de antivírus.

Ler post completo
Atacando o Kerberos – Kerberoasting

Atacando o Kerberos – Kerberoasting

O kerberoasting é um ataque que visa explorar uma vulnerabilidade no protocolo de autenticação Kerberos, amplamente utilizado em sistemas Windows.

Ler post completo