> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/pt-br/web/authentication/username-enumeration-via-account-lock.md).

# Enumeração de nome de usuário via bloqueio de conta

Notas sobre enumeração de nome de usuário via bloqueio de conta para os laboratórios do PortSwigger Web Security Academy, incluindo fluxo de exploração, teste de payload, validação no Burp Suite e contexto de remediação.

### Enumeração de nome de usuário via bloqueio de conta

A aplicação configura um bloqueio de conta após várias tentativas malsucedidas, mas a lógica é imperfeita. Isso pode ser usado para:

1. Encontrar um nome de usuário válido.
2. Forçar sua senha por força bruta.
3. Ir para a página da conta dele.

As listas fornecidas são:

* O **bloqueio da conta** ocorre \*\* somente se o nome de usuário for válido\*\*.
* Para usuários inexistentes, mesmo após várias tentativas, o comportamento permanece diferente (sem bloqueio real, mesma mensagem/resposta).
* Portanto, é possível distinguir um usuário existente de um não existente apenas observando as respostas.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-4488912695921502b1626a6ca9fa2cdcedab8fc9%2F%7B990C1E33-5174-47C2-A076-89DB667CAD9C%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

#### 1. Detecção de um nome de usuário válido

1. Envie solicitações de login em **modo Intruder** com a **Bomba em cluster** técnica:

* Um conjunto de candidatos para o campo de nome de usuário.
* Um conjunto de senhas para causar várias falhas.

2. Configure uma \*\*regra de correspondência (regex)\*\* para filtrar as respostas que contenham a mensagem:

* `Nome de usuário ou senha inválidos.`

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-3e97305bc93da5a693364b53788001c7f8381f82%2F%7B51BE5C26-72E2-49CE-B656-0A5E055B0999%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

* Analise os resultados:
* **Inválido** contas mantêm um comportamento consistente.
* Para uma \*\*conta válida\*\*, após um número de testes malsucedidos, a resposta muda (bloqueio).

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-4551c97ca1337e410d484590a9baf8ad859cd78d%2F%7B5623C231-62EC-451F-A3C0-D01CED6E3857%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

1. Observando as respostas, notamos que o nome de usuário **`akamai`** difere dos demais e revela esse comportamento relacionado ao bloqueio da conta. / → \*\*`akamai` é identificado como um nome de usuário válido. \*\*

#### 2. Força bruta da senha da conta válida

1. Uma vez que `akamai` tenha sido identificado como um usuário válido, o Intruder é reiniciado em **modo Sniper**:

* O campo de nome de usuário permanece vinculado a `akamai`.
* Apenas a **senha** é usada com a wordlist fornecida (senhas do laboratório de autenticação).

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-7ee48f3d67ff83b1c239afe2b336017cdac80cf1%2F%7B61A289C6-CD3D-4AA5-9EDF-5811F764EF0E%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

1. As respostas são analisadas novamente, incluindo:

* O \*\*código de status HTTP\*\*.
* O tamanho do corpo da resposta.
* Ausência ou modificação da mensagem de erro.

2. Ao testar a **`chelsea`** senha, a resposta é diferente (por exemplo, \*\*código HTTP diferente\*\* das outras tentativas). / → Conclui-se que o par **`akamai` / `chelsea`** está correto.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-cc02873fb961a6cd8baf85ef86e5a5db5ea8333d%2F%7B49B33C8D-8AAB-4470-8A77-2C2A510ED0E5%7D.png?alt=media" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://hacking-notes.jord4n.pro/pt-br/web/authentication/username-enumeration-via-account-lock.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
