HTTP Yanıt Bölme Nedir ?
Markanız için 300X300 alan.
HTTP Yanıt Bölme; yanıtı bölerek belirli bir parçasıyla öldürücü darbeyi vuran saldırı türüdür. Bu saldırı kullanılarak Cross-User Defacement, Cache Poisoning, XSS ve Page Hijacking saldırıları gerçekleştirilir.
HTTP Yanıt Bölme için Ne Gerekir ?
HTTP Yanıt Bölme saldırısının gerçekleşebilmesi için :
- Sunucuya güvenilmeyen veri gönderilmiş olmalı.
- Kullanıcının HTTP başlığına saldırıda kullanılan tamgaları eklemiş olması gerekir.
HTTP yanıt bölme saldırısı sunucuyu değil sunucunun zararlı yanıt döndürmesini hedefler. Yani asıl hedef sunucu değil sunucunun ziyaretçileridir.
Zengin metin işleyicilerde satırı ya da içeriğin tümünü seçtiğinizde satırın sonunda tamga içermeyen beyaz boşlukların da seçildiğini ve kopyala yapıştır yaptığınızda satır arası boşlukların da kopyalandığını görürsünüz.
Bu satır atlama işlemi CR (carriage return - taşıma dönüşü) ve LF (line feed - satır beslemesi) özel tamgalarıyla sağlanır.
Satır atlama işlemi bazı Windows ortamlarında yalnızca CR
ile gerçekleştirilirken bazı Linux ortamlarında yalnızca LF
ile gerçekleştirilir.
Satır atlama tamgalarından CR
için %0d
ya da \r
ve LF
için %0a
ya da
tamgaları HTTP yanıt bölme saldırılarında kullanılır.
Bu tamgaların HTTP yanıt bölme saldırılarında kullanılabilmeleri için yerliğin (uygulamanın) bu tamgaların kullanımına izin vermesi gerekir.
HTTP Yanıt Bölme Saldırısı Nasıl gerçekleşir ?
Kullanıcıdan gelen bir değerin sunucu tarafından çerez değeri olarak kullanıcıya döndürüldüğünü düşünün.
HTTP/1.1 200 OK
...
Set-Cookie: yazar=Ayça Deniz
...
Sunucudan dönen yanıt yukarıdaki örnekte gösterilen yanıtın yerine Saldırgan Hacker\r
Content-Length:45\r
\r
... biçiminde olsaydı dönen yanıtın asıl yanıtın önemsenmemesine neden olan dolandırıcı bir yanıt ile başlaması sağlanırdı :
HTTP/1.1 200 OK
...
Set-Cookie: yazar=Saldırgan Hacker
Content-Length: 999
<html>zararlı içerik...</html> (bu örnekte 999 tamga kullanılmalı)
Yanıtın 1000'inci tamgası ile başlayan asıl içerik tarayıcı tarafından görmezden gelinir.
Saldırıda kullanılan tamgalar A-Z, 0-9, ileri yatık çizgi (/
), iki nokta üst üste (:
), CR
, LF
, SP
, tire (-
), soru imi (?
), nokta (.
) ve sonrasında, virgül (,
), eşittir imi (=
), ve noktalı virgül (;
).