[TR] - CRLF Injection

April 8, 2020

CRLF, birçok protokolde kullanılan bir yöntemdir. Kullanılma amacı genellikle; bir satırı bitirip yeni satırın başladığını belirtmektir. Web Uygulamalarında ise, HTTP isteklerinde kullanılır. Bir isteğin header kısmı dediğimiz bölüm ile, HTML kodlarını ayırmada ve satır sonlarını belirtmekte kullanırız. Encode edilmiş hali "%0d%0a" iken, encode edilmemiş hali "\r\n" dir. CRLF'lerin kullanımına örnek bir istek şu şekilde olabilir:

GET / HTTP/1.1%0d%0a Host: fatihfurkan.site%0d%0a

CRLF'den bahsettiğimize göre, CRLF Injection saldırısına geçebiliriz.

CRLF karakterlerin, bölümleri ve satırları ayırma işlemlerinde kullanıldığını söyledik. Biraz kurnazlık yaparak, gönderdiğimiz isteklerdeki bu karakterleri amacına yönelik olmayan bir şekilde bölümleri ayırabiliriz.

CRLF Injection kullanılarak; HTTP Request Smuggling, HTTP Response Splitting gibi açıklardan faydalanabiliriz.

Bu konu pek uzun olmadı biliyorum ancak uzatılması gereksiz bir konu. Mantığını anlayıp, sebebiyet oluşturacağı açıklara yönelmenin daha mantıklı olacağını düşünüyorum.

Fatih Furkan Hatipoğlu

 

Bana bu kadar bilgi yetmez, daha fazlasını istiyorum diyenler için birkaç tavsiye kaynak:

Netsparket - CRLF Injection

Acunetix - CRLF Injection