Bu sefer php sayfasını ziyaret ettiğinizde, kodu çözüldüğünde html kaynak kodunu ortaya çıkaran temel 64 kodlu bir yanıt ortaya çıkacaktır. Bu aslında birkaç anlama gelir: ilk önce bu uç nokta bir web sitesini sorgular ve ardından taban 64, web sayfasını admin.acme.org’a kaydetmeden önce kodlar. İkincisi, sunucu tarafı istek sahteciliği (SSRF) güvenlik açığı olasılığımız var. Üçüncüsü, eğer bayrağı bulmak için bu uç noktayı kullanmak istiyorsak, alt alan adı gereksinimini ve .com gereksinimini atlamamız gerekecek.
SSRF, saldırganın sağladığı URL’ye isteklerde bulunan ve potansiyel olarak bir kullanıcının normalde web sitesine göz atarak erişemeyeceği dahili hizmetlere veya alanlara erişime yol açabilen savunmasız bir uygulamadan yararlandığımız bir istismardır.
Yapmamız gereken ilk adım, alt alan adı gereksinimini ve TLD gereksinimini atlamanın bir yolunu bulmaktır. Bunu yapabilmemizin bir yolu, isteğin kendisinde yeni satırlar oluşturmak için satırbaşı satırı besleme (CRLF) karakterlerini kullanmaktır; bu, gereksinimleri karşılamasını sağlayabiliriz ancak uygulamanın isteğin her bölümünü bağımsız olarak sorgulamasını sağlayabiliriz anlamına gelir.
CRLF karakterleri satırın sonunu belirtmek için kullanılır. Bu sunucu bir linux dağıtımı kullandığından, satırı sonlandırmak için sadece LF veya \n kullanabiliriz. Örnek olarak 212.\nacme.org\n.com gibi bir istek gönderelim, sunucu bunu şöyle görsün, 212’ye bir sorgu yapın. sonra google.com’a bir sorgu yapın, ardından .com’a bir sorgu yapın.
Dikkat edilmesi gereken önemli bir husus, daha önce de belirtildiği gibi, her talebin kimlik numarasını 1 artırmasıdır. Daha önce bahsedilen gibi bir talep, her talep için bir tane olmak üzere üç yeni kimlik oluşturacaktır. Eğer {“domain”:”212.\nacme.org\n.com”} şeklinde istek gönderseydik cevabımız {“next”:”\/read.php?id=311″} olurdu.