Html injection olarak adlandırılan bu zafiyet siteye dışarıdan herhangi bir kişinin html kodu enjekte etmesine olanak tanıyan bir güvenlik açığıdır.
Bu güvenlik açığı sayesinde site ziyaretçilerinin oturum bilgileri çalınabilir,sitede bulunan sayfa yönlendirmeleri değiştirilebilir ve daha bir çok riskli gerçekleştirilebilir.
Bu zafiyet,içerisinde birçok zafiyeti de barındırabilme özelliği içermektedir öyle bir durumda acilen zafiyetin site yöneticisine bildirilmesi ve kapatılması gerekmektedir.
Html İnjection Zafiyetinin Oluşturduğu Riskler
▪Kullanıcı Bilgileri (username,email,password)ele geçirme.
▪Sahte sitelere yönlendirme yaparak site ziyaretçilerini tuzağa düşürme.
▪Site içeriğini silme veya değiştirme.
▪Site sahibinin kişisel bilgilerini ele geçirme ve onları şantaj vb tehlikeli işlerde kullanma gibi daha birçok risk bulunmaktadır
HTML kodlarını çalıştırabildiğimiz alanlarda JavaScript kodlarıda çalıştırabildiğimiz için Cross Site Scripting(XSS) zafiyetine oldukça benzemektedir.
HTML Injection, Reflected ve Stored olmak üzere ikiye ayrılır.
Uygulamak için Html dilini bilmenize gerek yok bu zaafiyeti sömürmek için tabi bilmesek bile okuyabilmemiz önemlidir.
www.google.com ‘ da “html cheat sheet” yazarak html kodlarının ne işe yaradığını anlatan bir pdf çıkacaktır. linki aşağıya bırakıyorum ingilizce bir döküman ama anlıyabilirsiniz yinede.
https://web.stanford.edu/group/csp/cs21/htmlcheatsheet.pdfŞimdi Beebox zaafiyetli makinamız üzerinde belli başlı olan bir kaç html zaafiyeti deniyelim.
HTML Injection — Reflected (GET – POST)
HTML Injectionun bir türü olan “Reflected” İngilizcede yansıyan anlamına gelmektedir. Bu zafiyet input alanlarına girdiğimiz HTML kodlarını ekrana yansıtmasıyla gerçekleşir.

Burada bizden Ad ve Soyad girmemizi istenilen 2 adet alan mevcut. Ad ve Soyadı girdiğimizde bizi “Welcome Eyup Turan” yazısı karşılamakta. Yani Ad ve Soyad alanına ne yazarsak bu ekrana yansıyacaktır.
Bu bir GET methodu olduğu için Url de görüntüleyebiliyoruz Ancak Reflected Post olmuş olsaydı url de yaptığımız işleme dair bir bulgu görüntüleyemiyecektik.
Biz buradaki input alanlarına, HTML’de kullanılan tagları girdiğimizde bunu çalıştırabiliyorsak biz o web sayfasına html kodlarını enjekte etmiş oluruz.
şimdi <h1> eyup </h1> tagı kullanarak nasıl bir çıktı alacağız ona bakalım. Url kısmında da yine kullandığımz kod görüntülenmekte.

Şimdi sayfayı yeniliyelim veya başka bir bölüme gidip tekrar html injection reflected geldiğimizde girdiğimiz bilgiler kaybolduğunu göreceğiz buda zaafiyetin Reflected olmasından kaynaklıdır.
Zaafiyeti şimdi Url kısmına yazarak da Get Methoduyla çalışan Reflected zaafiyeti uygulamış olduk.

HTML enjeksiyonu XSS ile aynı mıdır?
HTML Enjeksiyonu, Siteler Arası Komut Dosyası Çalıştırmaya (XSS) benzer bir saldırıdır . XSS güvenlik açığında saldırgan Javascript kodunu enjekte edip çalıştırabilirken, HTML enjeksiyon saldırısı yalnızca belirli HTML etiketlerinin enjeksiyonuna izin verir.
HTML Injectionun, XSS zafiyetine benzediğini söylemiştik. Ad alanına JavaScript’te ekrana değer yazdırmak için kullanılan alert komutunu,
“<script>alert(“Eyup”)</script>”
olarak girdiğimizde web sayfasının bunu da çalıştırdığını ve HTML Injection yapabildiğimiz yerlere JavaScript komutlarını çalıştırabilir.
HTML Injection — Reflected (POST)
Post methoduna bakacak olursak yine zaafiyeti deniyoruz h1 tag uyguluyoruz yine çıktıyı aldık burada zaafiyetin olduğunu anlıyorum fakat url kısmının boş olduğunu görüntülüyoruz. Bunu BurpSuite aracıyla görebiliriz döndürdüğü tagı.

Gördüğünüz gibi Url kısmında görünen bukez burpsuit aracıyla görüntüleniyor url kısmında görülmüyor.
Post methodu ile çalışan Reflected zaafiyetide bu şekildedir. Get ve Post arasında ki farkı görmüş olduk.
Son olarak Storege kısmına bakalım.
Bu kısımda < h1 > tagını kullanarak yine zaafiyeti deniyelim.

gördüğünüz gibi < h1 > hacked by eyup < /h1 > tagı ile yazdığımda bu yazı burda ekli olarak kalıyor. Reflected methodunda sayfa değiştiğinde kayboluyordu ancak Stored methodunda bunun kalıcı olduğunu görüyoruz.
Stored zaafiyetler Reflected’e göre çok daha tehlikeli zaafiyetlerdir. Çünkü eklenen kodlar ile site ziyaretcilerinin bilgilerini çalabilirsin, siteye zarar verebilir sitenin yönlendirmelerini değiştirebilirsin ve bunun gibi birçok şey yapılabilir. Kötü niyetli kullanmak isterseniz Java script kodları yerleştirebilirsiniz yada iframe kodu da enjekte edilebilir.
<iframe src="https://www.youtube.com/?gl=" width=640 height=430 < hacked by eyup</iframe>şeklinde iframe kodu enjekte edilebilir.

Html İnjection çalışma mantığı bu şekildedir. Bu zaafiyetlerin bir çok çeşidini farklı method ve yöntemlerle denenip geliştirmek mümkün..
başka yazılarda görüşmek dileğiyle..


