Durmuyoruz yeni konular ile devam ediyoruz.
~Tanım~
HTML injection, saldırganların bir web uygulamasına HTML kodları enjekte etmek için kullandıkları bir web güvenlik açığıdır.
Bu saldırı türü, saldırganların kullanıcıların tarayıcılarında istenmeyen içerikleri görmesine neden olabilir.
HTML enjeksiyonu, bir web uygulamasının veri giriş alanlarına kötü niyetli kodlar enjekte etmek yoluyla gerçekleştirilebilir.
~Uygulama~
Labdan html injection sayfasına girdiğimiz zaman önümüze bu şekilde bir sayfa açılıyor.
Basit bir sayfalarda arama yüzü olarak düşünebiliriz.
Herhangi bir arama yapmak istediğimde ise search ile yazdığımı get methodu ile altta ekrana yazdırdığını görüyorum.
Kaynak koduna baktığımda ise aradığım kelimenin "p" taglarının arasına yazıldığını görüyorum.
Zafiyeti sömürmek için "h1" taglarının arasına bir yazı yazdığım zaman fontun büyüdüğü görüyoruz.
Burayı sömürmekte çok basittir. Tanımda da yazdığım gibi kullanıcının istemediği şeyleri görüntüleyebiliriz.
Örneğin;
Burada hackerımız bir lamera gönderme yapmak için html tagları ile internetten bir fotoğraf çekip lamer arkadaşa bu linki atıp sinirini baya bozmuştur.
Herhangi bir alert veya bir script vb. çalıştığımızda ise hatalı sorgu olarak bize yansıtacaktır.
~Zafiyetin Oluştuğu Yer~
Bu sayfa da inputtan alınan değer search değişkenine atanıyor eğer blacklistteki kelimelerden birini içeriyorsa hatalı sorgu olarak ekrana yansıtıyor eğer içermiyorsa ekrana yansıtabiliyor.
Bu kod ile de direk kullanıcıdan filtreli olarak aranan kelimeleri alabiliriz.
PHP:
if(isset($_GET['search'])) {
$search = htmlspecialchars(strip_tags($_GET['search']));
}