HTTP/1.1'deki 0.CL Açığı: İstek Kaçakçılığı Nasıl Çalışıyor
HTTP/1.1'de Content-Length başlığı yanlış işlendiğinde ortaya çıkan 0.CL açığı, istek kaçakçılığı (request smuggling) saldırılarının temelini oluşturuyor. Pentester Julen Garrido Estévez tarafından hazırlanan bu rehber, PortSwigger'ın laboratuvarında bu açığın nasıl tespit edilip istismar edileceğini adım adım gösteriyor.
Açığın mantığı basit: bir sunucu Content-Length değerini 0 olarak okuyabilir, fakat istemci tarafından gönderilen gerçek veri hala sunucunun arka tarafındaki proxy veya yük dengeleyiciye ulaşıyor. Bu durum, saldırganın iki farklı istek olarak yorumlanacak şekilde paketlenmiş veriyi göndermesine olanak tanır. İlk istek sunucuya ulaşırken, ikinci istek başka bir kullanıcının bağlantısına enjekte edilebilir.
Tespit için Burp Suite gibi araçlarla HTTP trafiğini incelemen gerekir. Özellikle proxy ve origin sunucu arasındaki Content-Length işlemesindeki tutarsızlıkları gözlemle. Saldırı senaryosunda, 0 uzunlukta bir istek gönder, ardından gizli veriyi içeren ikinci bir istek ekle. Sunucu ilkini işlerken, ikincisi buffer'da kalabilir ve sonraki istek yapan başka birine aktarılabilir.
Bu tür açıklar HTTP/2 ve HTTP/3'te daha sıkı kontroller sayesinde azalmıştır. Ancak eski sistemler ve yanlış yapılandırılmış proxy'ler hala risk altında. Pentest yaparken, protokol versiyonları arasındaki davranış farklarını her zaman kontrol et; sunucu ve proxy'nin Content-Length'u aynı şekilde yorumladığından emin ol.
0 yorum