SSI - Server-Side Includes - Como explorar SSI Injection

Server-Side includes - SSI é uma tecnologia usada pela aplicação web para criar conteúdo dinâmico nas páginas HTML antes ou durante a renderização da página. 

O uso de SSI na aplicação pode ser identificado pelas extensões .shtml, .shtm ou .stm

As diretivas usadas pelo SSI são:

// Date

<!--#echo var="DATE_LOCAL" -->

// Modification date of a file

<!--#flastmod file="index.html" -->

// CGI Program results

<!--#include virtual="/cgi-bin/counter.pl" -->

// Including a footer

<!--#include virtual="/footer.html" -->

// Executing commands

<!--#exec cmd="ls" -->

// Setting variables

<!--#set var="name" value="Rich" -->

// Including virtual files (same directory)

<!--#include virtual="file_to_include.html" -->

// Including files (same directory)

<!--#include file="file_to_include.html" -->

// Print all variables

<!--#printenv -->

SSI Injection - Prova de Conceito - POC 

O payload com as diretivas SSI é enviado para a aplicação vulnerável através dos campos da aplicação. A exploração bem sucedida do SSI Injection permite a leitura de arquivo e execução remota de código. 

Usando uma aplicação fornecida pelo Hack The Box, no campo Name é feito o teste inicial para validar se a aplicação é vulnerável. 

Usando a diretiva <!--#exec cmd="ls" --> a aplicação processa a requisição e retorna a lista de arquivo. 

Em seguida o comando pwd mostra o diretório atual onde estão os arquivos anteriormente listados. 


A correção ou proteção contra essa vulnerabilidade é a validação do input nos campos da aplicação. 

Referência:

[+] OWASP SSI Injection 
https://owasp.org/www-community/attacks/Server-Side_Includes_(SSI)_Injection



 


Comentários

Postagens mais visitadas