Pentest & Bug Bounty
  • 🥷Pentest et Bug Bounty
    • 👾Pentest Methodology
    • 💸Bug Bounty Methodology
      • 📓Ecrire un bon rapport
      • ⚖️Aspect Juridique (FR)
  • 👣OSINT / Recon
    • 🧦Sock Puppet
    • 🧠Mindmaps
    • 🏢Entreprise
    • 👀Leaks
    • 👊Manuel / Dorks
      • Google dorks
      • Github dorks
      • Twitter Dorks
      • Shodan Dorks
    • 👥Réseaux sociaux (SOCMINT)
      • 🕵️Telegram OSINT
      • 👻Snapchat OSINT
      • 🤵‍♂️Linkedin OSINT
      • 🗣️Facebook OSINT
      • 🎼Tik tok OSINT
      • 📷Instagram OSINT
      • 🐦Twitter OSINT
      • 🔊Discord OSINT
    • 🖇️Domaines et Sous-domaines
    • 🚪Scan de ports / web
    • ✉️Emails
    • 🔗Réseau
    • 📷Screenshots
    • 📹Live camera
    • 🧔Reconnaissance faciale / images
    • 🌆Images
    • 🗺️Maps
    • 👁️Active Directory
    • ☁️Cloud
    • Autre
  • 🌐Pentest Web
    • ✊Brute force / Fuzzing
    • 💉Injections
      • 🍪XSS
        • PDF injection
      • 📄HTMLi
      • 📃XXE
      • 7️⃣SSTI
      • 🔢SQLi
        • 👫UNION based
        • ⏳Time based
        • 🥽Boolean based / Error Based
        • 📤Out-Of-Band
      • ↩️CRLF
      • 🐚OS injection
      • ☕Log4Shell
      • 🥠CSV
      • 🍻ESI
      • 😎XSLT
      • 💌Injections dans emails
      • 🔀ELi
        • OGNLi
    • ↪️Open redirect
    • 📁Path Traversal / LFI / RFI
    • 🔓Bypass
      • 〰️WAF / Filter bypass
      • 2️2FA
    • ☠️Charges utiles
    • 📚CMS (Content Management System)
      • WordPress
      • Joomla!
      • Magento
      • Drupal
    • 🎭SOP bypass
      • CORS
      • postMessage()
      • JSONP
    • 🖱️Clickjacking
    • ⚙️Insecure deserialization
    • ☣️Web Cache Poisoning / Deception
    • 🤝HTTP Smuggling
    • 👋OAuth
    • ⛔SAML
    • 🗝️JSON Web Token
    • 🎣CSRF
      • 🚀Cross-site WebSocket Hijacking (CSWSH)
    • 🎯IDOR
    • 🕹️SSRF
      • Cloud SSRF
      • Protocol Smuggling
    • ⚙️APIs
      • 🍽️REST
      • 📶GraphQL
    • ❓Mot de passe oublié
    • 🛒Fonctions d'achat et de facturation
    • 👽Broken authentication / register
    • 🏁Panneaux d'administration
    • ⏬Upload features
    • 🔗Broken Link Hijacking
    • 🎮Prise de contrôle de sous-domaine
    • 🛂Prise de contrôle de DNS
    • ☝️One liners
    • 🚧Misconfigurations
    • 🗿Analyse statique
      • PHP
      • Ruby On Rails
      • Perl
      • JAVA
      • Javascript
      • Python
      • Golang
      • .NET
    • 🪣AWS S3
    • 🤖Captcha
    • 🪞Race conditions
    • ☄️.git exposé
    • 💭Business logic
    • 🥡Prototype pollution
    • 💣Dependency confusion
    • 🛑DoS
      • 🤯ReDoS
      • 👏Hash flooding
      • 🧨Cookie bomb
    • Autre
      • Flask
      • Symphony
      • Spring Boot
      • Django
      • Jenkins
  • 🌩️Pentest Cloud
    • IaC (Infrastructure as Code)
      • Terraform
      • Helm
      • Kustomize
    • AWS
      • Enumeration
    • Azure
      • Entra ID
      • Azure Resource Manager (ARM)
        • Enumeration
    • GCP
      • GCP IAM
      • Authentification
      • Enumeration
    • Kubernetes
  • 🕸️Pentest Réseau
    • 🪡Protocoles réseau
    • 📡Wifi
    • 🔋BLE
    • 📍VPN
  • 🗂️Pentest AD
    • 👺GPP
    • ➡️Mouvements latéraux
      • 🔪Pass The Hash
      • 🗡️Over Pass The Hash
    • 📜ADCS
  • 📱Pentest Mobile
    • 🤖Android
      • 👾Méthodologie
      • 🌳Setup environnement
      • 🍇Collecte d'informations
      • 🔠Enumeration des données locales
      • 🔙Reverse engineering
        • 🪢Dé-obfuscation
      • ⛰️Analyse statique (Android)
      • 🐞Debug
      • 🎰Stockage de données non sécurisé
        • 📰Logs
        • 🤝Shared Preferences
        • 🔤Strings
        • 🗄️SQLite DB
        • 🗃️Realm DB
        • 🧠Mémoire
        • 📍Copy/Paste buffer caching
        • ⌨️Keyboard press caching
        • 🔙Backup
        • Carte SD
      • 🌩️Firebase/Appspot misconfig
      • 🔗Deeplinks vulns
        • Interception de contenu
        • WebView hijacking (via deeplink)
        • Invalid Digital assets links
      • 🖼️WebView vulns
        • WebView Hijacking
        • Exfiltration de données
        • RXSS
        • Vol de token
      • Guides outils
        • ⛏️Outil Drozer
          • Injections SQL (Android)
          • Path traversal (Android)
        • 🔬Outil Objection
        • 🪝Outil Frida
        • Outil Medusa / Mango
      • Bypass
        • 📲Contournement de détection d'emulateur
          • 📂Fichiers d'emulateurs
          • 🙋‍♂️Network Operator Name
        • 🦷Contournement des détections de rootage
          • 🧮Root management
          • 🗝️Clé de signature du noyau
          • 🧊Props dangereux
          • 🦸‍♂️Binaire "su"
          • ❌Permissions sur les repertoires
        • ☝️Contournement des protections biometriques
        • 📜SSL pinning bypass
        • Contournement de code PIN
      • 🔳Lecteur de code QR/EAN/Barres...
      • 💔Injection de backdoor
      • 🪧Task hijacking
      • 🎭Overlay attacks
        • Tapjacking
        • Invisible Keyboard
      • 📵Résilience
        • ⌨️Third Party Keyboards
        • ©️Allowed Copy/Paste on sensitive fields
        • 🛤️Background screen caching
        • 🖋️Schémas de signature
        • ⬆️In-App updates
      • 🤯Corruption de Mémoire
    • 🍏iOS
      • 🥅Méthodologie
      • 🧱Setup environnement (iOS)
      • ⏮️Reverse engineering (iOS)
      • 🏔️Analyse statique (iOS)
      • 🧿Contournement de détection de Jailbreak
      • 📌SSL pinning bypass (iOS)
      • 👇Contournement d'authentification biométrique
      • 🐛Contournement d'anti-Hooking/Debugging
      • 🙈Stockage de données non sécurisé (iOS)
        • 💭Mémoire (iOS)
        • 🏓Copy/Paste buffer caching (iOS)
        • 🍪Cookies (iOS)
        • 🗞️Logs (iOS)
        • ⌨️Cache du clavier (IOS)
        • Backup (IOS)
      • 📱Background screen caching
      • 🧑‍🚀WebView vulns (iOS)
      • Deeplinks vulns (iOS)
      • Lecteur de code QR
      • Firebase misc
  • 👷Pentest physique
    • 🔐Crochetage
    • 💳RFID
    • ⚙️Equipements
    • 💾Hardware Hacking
      • 📈UART
      • 🧪JTAG
      • ⚡SWD
      • 🪢SPI
      • 🚌I²C
      • 🔴Fault Injection
      • Side-Channel Attacks
    • 🐣Firmware hacking
  • 🖨️Pentest IoT
    • ⏪Replay de stream camera
    • 🗣️Assistants vocaux
    • 📹Camera IP
    • ⬇️DoS
    • 🖨️Imprimantes
    • 🎬Chromecast
  • 💀Hacking protocols
    • 😩Telnet - port 23
    • 🔐SSH - port 22
    • 📤FTP - port 21
    • ❔Whois - port 43
    • 👉DNS - port 53
    • 🐕‍🦺Kerberos - port 88
    • 💼SNMP - ports 161-162
    • 📨SMB - ports 445-139
    • 📧SMTP - ports 25-587
    • 🎦RTSP - port 554
    • 🔎MS-RPC - ports 135-593
    • ➕Rsync - port 873
    • 🔢MS-SQL - port 1433
    • 🏗️Docker - port 2375
    • 🔡MySQL - port 3306
    • 📝LDAP - ports 389, 636, 3268, 3269
    • 🖥️RDP - port 3389
    • ⌨️VNC - ports 5800,5801,5900,5901
  • 😈Ingénierie sociale
    • 🧠Concepts / Principes / Attaques
    • 🪧Ethique
    • 👤Profils comportementaux
  • 🔓Crack
  • 🛠️Autres outils utiles
    • 🚿Sandbox / Sanitizer
    • 🔤Générateurs de wordlists personnalisées
  • 🌜Post-Exploitation
    • 👔Énumération /Élévation de privilèges
      • 🐧Linux
        • CVE-2022-0847 (Dirty Pipe)
        • CVE 2021-4034 (PwnKit)
        • CVE 2021-3560 (Polkit)
      • 🪟Windows
        • 🖨️PrintNightmare
        • 🖨️SpoolFool
        • 🆔Usurpation de SAMAccountName
        • ⏲️Scheduled task/job (T1573.005)
        • 🐝HiveNightmare
        • 🔑Stored Credentials
        • 🎩SeImpersonatePrivilege
        • 🎒SeBackupPrivilege
        • 🍞Unquoted Service Path
        • 🧩DLL Hijacking
        • ©️SeBackupPrivilege
      • ⛴️Docker
    • 👻Effacement des traces
    • ⚓Persistance / Downloaders
    • 🛡️Defense evasion
    • 📦Exfiltration de Données
  • 🔎Forensic
    • 💡Méthodologie
    • 📺Live forensic
    • 💻Mémoire non volatile
    • 🕊️Mémoire volatile
    • 📄File forensic
Propulsé par GitBook
Sur cette page
  • Basic
  • CL.TE
  • TE.CL
  • TE.TE

Cet article vous a-t-il été utile ?

  1. Pentest Web

HTTP Smuggling

Basic

Les attaques de contrebande de requêtes impliquent de placer à la fois l'en-tête Content-Length et l'en-tête Transfer-Encoding dans une seule requête HTTP et de les manipuler de sorte que les serveurs front-end et back-end traitent la requête différemment. La manière exacte dont cela se fait dépend du comportement des deux serveurs :

  • CL.TE : le serveur front-end utilise l'en-tête Content-Length et le serveur back-end utilise l'en-têteTransfer-Encoding.

  • TE.CL : le serveur front-end utilise l'en-tête Transfer-Encodinget le serveur back-end utilise l'en-tête Content-Length.

  • TE.TE : les serveurs front-end et back-end prennent tous deux en charge l'en-tête Transfer-Encoding, mais l'un des serveurs peut être incité à ne pas le traiter en masquant l'en-tête d'une manière ou d'une autre.

CL.TE

Dans ce cas, le serveur front-end utilise l'en-tête Content-Length et le back-end l'en-tête Transfer-Encoding.

Il est donc possible d'exploiter la cible comme ceci:

POST / HTTP/1.1
Host: target.com
Content-Length: 13
Transfer-Encoding: chunked

0

SMUGGLED

Le serveur front-end traite l'en-tête Content-Length et détermine que le corps de la requête a une longueur de 13 octets, jusqu'à la fin de SMUGGLED. Cette demande est transmise au serveur principal.

Le serveur principal traite l'en-tête Transfer-Encoding et traite donc le corps du message comme utilisant un codage fragmenté. Il traite le premier bloc, qui est déclaré être de longueur nulle, et est donc traité comme mettant fin à la demande. Les octets suivants, SMUGGLED, ne sont pas traités et le serveur principal les traitera comme étant le début de la requête suivante dans la séquence.

TE.CL

Dans ce cas, le serveur front-end utilise l'en-tête Transfer-Encoding et le back-end l'en-tête Content-Length.

Il est donc possible d'exploiter la cible comme ceci:

POST / HTTP/1.1
Host: target.com
Content-Length: 3
Transfer-Encoding: chunked

8
SMUGGLED
0

Pour envoyer cette requête à l'aide de Burp Repeater, vous devrez d'abord vous rendre dans le menu Repeater et vous assurer que l'option "Update Content-Length" est décochée.

Vous devez inclure la séquence de fin \r\n\raprès le final 0.

Ici, le serveur front-end traite l'en-tête Transfer-Encoding et traite ainsi le corps du message comme utilisant un codage fragmenté. Il traite le premier bloc, qui est censé avoir une longueur de 8 octets, jusqu'au début de la ligne suivant SMUGGLED. Il traite le deuxième bloc, qui est déclaré être de longueur nulle, et est donc traité comme mettant fin à la demande. Cette demande est transmise au serveur back-end.

Le serveur back-end traite l'en-tête Content-Length et détermine que le corps de la requête a une longueur de 3 octets, jusqu'au début de la ligne suivant 8. Les octets suivants, commençant par SMUGGLED, ne sont pas traités et le serveur principal les traitera comme étant le début de la requête suivante dans la séquence

TE.TE

Pour ce dernier cas, pour découvrir une vulnérabilité TE.TE, il est nécessaire de trouver une variation de l' en-tête Transfer-Encoding telle qu'un seul des serveurs front-end ou back-end la traite, tandis que l'autre serveur l'ignore.

Selon que c'est le serveur front-end ou le serveur back-end qui peut être amené à ne pas traiter l'en-tête Transfer-Encodingobfusqué, la suite de l'attaque prendra la même forme que pour les vulnérabilités CL.TE ou TE.CL déjà décrites.

Il existe des façons potentiellement infinies d'obfusquer l'en-tête Transfer-Encoding.

Quelques exemples ci-dessous:

Transfer-Encoding: xchunked

Transfer-Encoding : chunked

Transfer-Encoding: chunked
Transfer-Encoding: x

Transfer-Encoding:[tab]chunked

[space]Transfer-Encoding: chunked

X: X[\n]Transfer-Encoding: chunked

Transfer-Encoding
: chunked
PrécédentWeb Cache Poisoning / DeceptionSuivantOAuth

Dernière mise à jour il y a 1 an

Cet article vous a-t-il été utile ?

🌐
🤝