desvio do filtro SSRF

May 07 2023
Olá, meu nome é W1C3 e hoje vou explicar como obter acesso de leitura de arquivo arbitrário por meio de falsificação de solicitação do lado do servidor (SSRF), ignorando o filtro. Este desafio foi desenvolvido para o WaniCTF.

Olá, meu nome é W1C3 e hoje vou explicar como obter acesso de leitura de arquivo arbitrário por meio de falsificação de solicitação do lado do servidor (SSRF), ignorando o filtro. Este desafio foi desenvolvido para o WaniCTF .

Nome

Captura de tela

Descrição

Um aplicativo que tira screenshots de seus sites favoritos.

Passo a passo

Ao acessar o site, pode-se observar que se trata de uma página bastante simples. Sua única funcionalidade é receber um URL, acessar o URL usando um navegador da Web e fazer uma captura de tela.

Aplicativo simples de captura de tela

Neste desafio, à medida que o código-fonte é fornecido, podemos ver que ele realiza uma verificação que precisamos ignorar, pois “ HTTP ” deve ser incluído em nossa solicitação e “ FILE ” não pode ser incluído.

Revisão do código do servidor

Para verificar isso, tentaremos ler o arquivo /etc/passwd , mas sem sucesso.

Tentando identificar o SSRF

Como mencionamos anteriormente, o filtro que precisamos ignorar deve conter a string “ http ” ou não incluir a string “ arquivo ”.

Identificando o SSRF

Agora que estamos na etapa anterior, sabendo que o SSRF existe e entendendo o filtro que precisamos contornar, vamos adicionar “ File:// ” ao início e “ ../../../../flag. txt ” ou “ ../../../../etc/passwd ” ao final. Com isso, poderemos ler o arquivo “flag.txt” para concluir nosso desafio.

NOTA : O arquivo deve conter pelo menos uma letra maiúscula para ignorar o filtro

Leitura arbitrária de arquivo

Para facilitar, removeremos alguns dados da solicitação. Nesse caso, nosso payload ficaria assim:

File:///http/../../flag.txt

Conclusão

Neste desafio, demonstramos como contornar um filtro simples que tentou impedir o SSRF desabilitando o protocolo “ file ” e exigindo o protocolo “ http ”. Ao construir cuidadosamente nossa solicitação com uma letra maiúscula no parâmetro “ arquivo ” e usar o protocolo “ Arquivo:// ”, conseguimos ler arquivos arbitrários no servidor.

Obrigado por ler este post. Fique atento para mais postagens futuras no blog e sinta-se à vontade para me seguir nas redes sociais para atualizações. Além disso, observe que meu GitHub pessoal terá postagens publicadas em espanhol. Adeus!

Github: J-W1C3

Twitter: Josewice7

Telegrama: W1C3Posts

Junte-se ao meu canal Telegram para ficar atualizado quando novas postagens são publicadas.