> For the complete documentation index, see [llms.txt](https://securitylayer.gitbook.io/securitylayer/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://securitylayer.gitbook.io/securitylayer/pentesting-tools/tools/wfuzz.md).

# Wfuzz

*`Wfuzz` es una herramienta de **fuerza bruta y fuzzing,** utilizada principalmente en pentesting web. Su propósito principal es **descubrir recursos o vulnerabilidades** en aplicaciones web enviando múltiples peticiones HTTP modificadas, generalmente cambiando algún parámetro en la URL, headers, datos POST, etc.*

#### *🛠 ¿Para qué se utiliza Wfuzz?*

*Estas son algunas de sus aplicaciones más comunes:*

| Función                                    | Descripción                                                                      |
| ------------------------------------------ | -------------------------------------------------------------------------------- |
| **Descubrimiento de directorios/archivos** | Enumerar rutas ocultas o sensibles (como `/admin`, `/login`, `/config.php`)      |
| **Enumeración de parámetros**              | Encontrar nombres de parámetros GET o POST que no están documentados             |
| **Bypass de autenticación o WAF**          | Probar con distintos headers, parámetros o rutas para saltarse restricciones     |
| **Fuzzing de formularios**                 | Enviar múltiples valores a campos específicos buscando errores o RCE, SQLi, etc. |
| **Fuerza bruta de login**                  | Probar combinaciones de usuario y contraseña en formularios de autenticación     |

#### 💻 *Comandos comunes en Wfuzz para pentesting*

***1. Descubrir directorios o archivos ocultos***

{% code fullWidth="true" %}

```bash
wfuzz -u http://target.com/FUZZ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --hc 404
```

{% endcode %}

* *`FUZZ` es el punto donde se inyectan los valores.*
* *`--hc 404`: oculta las respuestas que devuelven 404 (Not Found).*

***

***2. Descubrir archivos con extensiones específicas***

```bash
wfuzz -u http://target.com/FUZZ.php -w wordlist.txt --hc 404
```

* *Esto probaría archivos como `admin.php`, `login.php`, etc.*

***

***3. Enumerar parámetros GET***

```bash
wfuzz -u http://target.com/index.php?FUZZ=test -w params.txt --hh 1000
```

* *`params.txt` contiene posibles nombres de parámetros (ej: `id`, `user`, `cmd`).*
* *`--hh 1000` oculta respuestas con longitud 1000 (útil para filtrar respuestas vacías o repetitivas).*

***

***4. Fuerza bruta de login (usuario o password)***

```bash
wfuzz -u http://target.com/login.php -d "username=admin&password=FUZZ" -w rockyou.txt --hh 1500
```

* *Está probando distintas contraseñas para el usuario `admin`.*

*También podrías hacerlo variando usuarios:*

```bash
wfuzz -u http://target.com/login.php -d "username=FUZZ&password=123456" -w users.txt --hh 1500
```

***

***5. Fuzzing de headers***

```bash
wfuzz -u http://target.com -H "X-Forwarded-For: FUZZ" -w ips.txt
```

* *Útil para bypass de IP restrictions o WAF.*

***

#### 🧰 *Algunos parámetros útiles*

| Opción          | Descripción                                   |
| --------------- | --------------------------------------------- |
| `-u`            | URL objetivo con el marcador `FUZZ`           |
| `-w`            | Wordlist a usar                               |
| `--hc <code>`   | Oculta respuestas con cierto código HTTP      |
| `--hh <size>`   | Oculta respuestas con cierto tamaño en bytes  |
| `--hs <string>` | Oculta respuestas que contienen cierto string |
| `-d`            | Datos POST                                    |
| `-H`            | Añadir headers personalizados                 |
| `--follow`      | Seguir redirecciones                          |
| `-t`            | Número de hilos (paralelismo, por defecto 5)  |


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://securitylayer.gitbook.io/securitylayer/pentesting-tools/tools/wfuzz.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
