Skip to content

p1ngul1n0/BurpAcademyLABs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laboratórios da Burp Academy


[EM CONSTRUÇÃO]:hammer:

Descrição e solução de LABs da Burp Academy.

Sumário

Authentication

Business logic vulnerabilities

Clickjacking

CORS

Visualizar LABs

CORS vulnerability with basic origin reflection

Descrição

Este LAB possui uma configuração incorreta de CORS e confia em todas origens. Para solucionar o LAB, codifique um código JavaScript que utilize CORS para obter a API Key do administrador e o envie para o servidor de exploit. Este LAB é solucionado quando a API Key do administrador é submetida.

Solução

💡
  1. Autentique e acesse a área do usuário.
  2. É possível identificar o uso do seguinte endpoint:

GET /accountDetails

  1. Este endpoint retorna a API Key do usuário autenticado:
 {
   "username": "wiener",
   "email": "",
   "apikey": "BDKD9r0wSagpq7fIN6DlyMkmVd8BPVWs",
   "sessions": [
     "VB2znrX8xyrGsfeFTCb7Dv1VBkL5DTuQ"
   ]
 }
  1. Programe um código JavaScript para realizar uma requisição GET para o endpoint identificado e obter a API Key.
  2. Este código também deve enviar a API Key para o servidor de exploit.
  3. O código deve ser armazenado no servidor de exploit e entregue para a vítima.
  4. Após o último passo, a API Key deve aparecer no log do servidor de exploit:

GET /?apikey=V8YQnKjWB8oGz0YD6tjO4r8V8itPe6Jc

Cross-Site-Scripting

CSRF

File upload vulnerabilities

Information disclosure

Visualizar LABs

Information disclosure in error messages

Descrição

Este LAB possui mensagens de erro detalhadas que expõem o uso de uma versão vulnerável de um framework de terceiros. Para solucionar o LAB, obtenha e envie o número da versão deste framework.

Solução

💡
  1. Acesse os detalhes de qualquer produto do catálogo.
  2. Uma chamada GET com o parâmetro productId é realizada:

GET /product?productId=2

  1. Substitua o parâmetro por um caractere especial qualquer:

GET /product?productId='

  1. Reenvie a chamada com o parâmetro alterado.
  2. Uma mensagem de erro detalhada será recebida, observando a última linha da mensagem, é possível identificar a versão do Apache Struts utilizada.

at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833)

Apache Struts 2 2.3.31

  1. Para solucionar o LAB, submeta a versão identificada.

Information disclosure on debug page

Descrição

Este LAB contém uma página de debug que expõe informação sensível da aplicação. Para solucionar o LAB, obtenha e envie a variável de ambiente SECRET_KEY.

Solução

💡
  1. Busque por comentários na página, é possível identificar o comentário.

<!-- <a href=/cgi-bin/phpinfo.php>Debug -->

  1. Acesse a página presente no comentário, no caso /cgi-bin/phpinfo.php.
  2. Na página acessada é possível visualizar a variável de ambiente SECRET_KEY.
  3. Para solucionar o LAB, submeta o valor da variável encontrada.

Source code disclosure via backup files

Descrição

Este LAB vaza seu código fonte através de arquivos de backup que estão em um diretório escondido. Para solucionar o LAB, identifique e envie a senha do banco de dados, que esta fixa e exposta no código.

Solução

💡
  1. Enumerando os diretórios da aplicação, é possível identificar o diretório backup.
  2. Acesse o diretório descoberto, onde é possível visualizar o arquivo ProductTemplate.java.bak.
  3. Acesse o arquivo identificado.
  4. No código, é possível identificar os dados de conexão do banco de dados, sendo possível obter a senha de acesso.
    ConnectionBuilder connectionBuilder = ConnectionBuilder.from(
                "org.postgresql.Driver",
                "postgresql",
                "localhost",
                5432,
                "postgres",
                "postgres",
                "kw9ce735cw5r1r1syf3cxkx0dar4zp29"
  1. Para solucionar o LAB, submeta a senha do banco de dados.

Authentication bypass via information disclosure

Descrição

A interface administrativa deste LAB tem uma vulnerabilidade de bypass na autenticação, porém é impraticável explorar sem conhecimento do cabeçalho HTTP customizado utilizado pelo front-end.

Para solucionar o LAB, obtenha o cabeçalho e utilize-o para bypassar a autenticação. Acesse o painel administrativo e delete a conta do Carlos.

Solução

💡
  1. Autentique utilizando o usuário e senha wiener:peter.
  2. Envie uma requisição com método HTTP TRACE para o endpoint /admin.
  3. Observando a resposta é possível identificar o cabeçalho X-Custom-IP-Authorization: 189.54.133.189.
  4. Envie outra requisição para o endpoint /admin mas desta vez com método GET e o cabeçalho obtido anteriormente com o IP 127.0.0.1.
  5. A chamada ficará desta forma e sua resposta apresentará o painel administrativo
GET /admin HTTP/1.1 
[...]
X-Custom-IP-Authorization: 127.0.0.1  
  1. Para solucionar o LAB, delete o usuário de Carlos.

Information disclosure in version control history

Descrição

Este LAB expõe informação sensível através do seu histórico de controle de versão. Para solucionar este LAB, obtenha a senha do usuário administrador, realize login e delete a conta de Carlos.

Solução

💡
  1. Realize o mapeamento da URL do LAB, o diretório ./git será identificado.
  2. Verifique o conteúdo do arquivo COMMIT_EDITMSG, é possível identificar uma frase que indica que a senha do administrador estava fixa no código.

Remove admin password from config

  1. Realize download dos arquivos presentes na pasta objects.
  2. Utilizando Python é possível ler o conteúdo dos objetos GIT baixados (Código).
  3. O programa python irá retornar a linha de código que expõe a senha do administrador:

'b'blob 36\x00ADMIN_PASSWORD=322ix05781cxs4gp4nvn\n'

  1. Para solucionar o LAB, autentique-se com o usuário administrator utilizando a senha obtida e delete o usuário carlos.

Links Utéis

OAuth authentication

Server-side request forgery (SSRF)

SQL injection

WebSockets

XML external entity (XXE) injection

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published