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
Postar um comentário