LFI - Local File Inclusion com Log Poisoning

Os web servers Apache e Ngnix possuem logs para registro de erros (error.log), acesso (sshd.log, vsftpd.log), email (mail.log) e registro das requisições encaminhadas para a aplicação (access.log). Geralmente, os logs são armazenados em /var/log/apache2 e /var/log/ngnix 

Quando a aplicação é vulnerável a LFI - Local File Inclusion e a função usada permite execução é possível manipular a requisição para fazer a execução remota de comando. 

Descrição completa da vulnerabiliade pode ser encontrada no site do OWASP nesse Link

Além da permissão de execução, cada web server possui permissão específica para a leitura dos logs. O Apache só permite a leitura dos logs pelo usuário root e o Ngnix permite a leitura usando o usuário default da aplicação www-data

Log Poisoning - POC 

Ao explorar o LFI para ler o arquivo access.log, a aplicação retorna no html o output do arquivo de log. 


Usando o Burpsuite, ao interceptar a requisição para leitura do access.log, é possível alterar o campo User-Agent para testar o Log Poisoning. 


A aplicação inclui no log a string inserida no campo User-Agent


A partir dessa confirmação, a próxima etapa é inserir no User-Agent o código da web shell. 


Em seguida, envia uma requisição com a execução do comando no GET &cmd=ls

...continuar...



Comentários

Postagens mais visitadas