Dissertação

{en_GB=ZAP-ESUP: ZAP Efficient Scanner for Server Side Template Injection Using Polyglots} {} EVALUATED

{pt=Recentemente, Kettle expôs um novo tipo de vulnerabilidade à qual chamou SSTI. Esta vulnerabilidade acontece em Template Engines, que são programas usados para combinar modelos de dados com templates. Estes templates contêm tanto HTML como código de template, que define como o HTML dinâmico é gerado dependendo do modelo de dados. Se o input do utilizador for incorretamente inserido no meio do template em vez de ser usado como modelo de dados, um atacante pode executar código no servidor. SSTI pode ser considerada uma vulnerabilidade da classe A1-Injection que é a classe de vulnerabilidade com o maior risco de segurança segundo o OWASP Top 10 2017. Pelo que sei só existem dois varredores de vulnerabilidades que detetam e exploram SSTI, Burp Suite e Tplmap. Estas soluções ou são software proprietário, ou têm uma quantidade limitada de payloads fixos e consequentemente restrito a um número limitado de template engines. Nenhum deles consegue encontrar vulnerabilidades quando o input é guardado e usado depois em outras páginas (Stored SSTI). Neste trabalho, estudei as situações onde SSTI pode estar presente, desenvolvi um varredor de vulnerabilidades que procura SSTI num maior leque de situações de uma forma mais eficiente usando payloads poliglotas usando menos do que 25% dos pedidos feitos pelas outras soluções. Esta solução vai ser disponibilizada como um plug-in para o OWASP ZAP, que é uma ferramenta open-source para procurar vulnerabilidades em aplicações web e que é usada por um grande número de utilizadores. , en=Recently, Kettle introduced a new type of vulnerability which he called SSTI. Template engine is software used to combine data models with templates which contain both static HTML and template code. This template code defines how the dynamic HTML is generated depending on the given data model, and some allow full programming language functionality. If the user input is incorrectly inserted in the middle of the template instead of being used as the data model, an attacker can execute code in the server. SSTI can be considered an A1-Injection that is the class with the highest security risk according to OWASP Top 10 2017. To the best of my knowledge only 2 solutions detect or exploit SSTI, Burp Suite and Tplmap. These solutions are either proprietary software or have a limited amount of (fixed) payloads and consequently restricted to a limited number of template engines. None of them can find vulnerabilities when the input is stored and used in other pages (Stored SSTI). In this work, I studied the situations where SSTI may be present, developed a scanner that automatically detects SSTI vulnerabilities in a broader range of situations (reflected, stored, and blind),introduced an efficient technique that uses polyglot payloads to detect SSTI with less than 25% of the requests made by the other scanners, and concluded by constructing and using tests to compare with the existent solutions. The solution will be made available as a plug-in for OWASP ZAP a widely used open-source to find vulnerabilities in web applications.}
{pt=segurança, apllicações web, SSTI, ingecção, varredor de vulnerabilidades, en=security, web application, SSTI, injection, vulnerability scanner, polyglot}

Novembro 9, 2018, 18:0

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

Pedro Miguel dos Santos Alves Madeira Adão

Departamento de Engenharia Informática (DEI)

Professor Auxiliar