HTML Injection büyük ihtimal ile daha önceden duymuş olduğunuz bir güvenlik zafiyetidir. Bu yazımda HTML Injectionu örnek ile açıklamaya çalışacağım. Umarım sizler için faydalı olur.
HTML Injection Nedir?
HTML Injection söz konusu yazılımın kodunda yapılmış hata ve filtreleme eksikleri gibi sorunlardan ortaya çıkan bir güvenlik açığıdır. Çok aydınlatıcı değil ama örnek ile birlikte bunu oldukça iyi anlayacağınızı düşünüyorum. Şunu da eklemek istiyorum HTML Injection yaklaşık 4 bölümden oluşacak. Bu ise ilk bölüm. Bölümleri takip ederseniz her şeyin yerli yerin oturacağını düşünüyorum.
Örnek ile ilgili: Örneğimizi bee box adlı zafiyetli makine de göreceğiz. Eğer test etmek isterseniz sanal makine olarak kurabilirsiniz.
HTML Injection-1 Reflected (GET)
Hedef makineyi çalıştıralım ve sol üstte bulunan start bölümünü açalım. Username ve password isteyecektir. username bee pass bug şeklinde siteye girelim. İşlemi linuxdan yapacağımız için ip adresini öğrenelim. Bunu için sol üstte bulunan terminali açıp ifconfig yazmanız yeterli olacaktır. Virtual Box ise büyük ihtimal ile 10.0… şeklinde VMware 192.168… şeklinde görünecektir.
Ip adresini öğrendikten sonra hedef makineyi açık bırakarak linuxa gelelim. Aldığımız ip adresini tarayıcıya yazalım ve karşımıza basit bir ekran gelecek. bWAAP seçeneğine tıklayalım ve uygulama ekranına ulaşıyoruz.
Sağ üstten HTML Injection-1 Reflected (GET) seçelim ve hack butonuna tıklayalım. Bir giriş ekranı gelecek. Şimdi işlemimize başlayalım.
Kullanıcı adına Burak ve alt kısma ise Korkmaz yazdım.
Gördüğünüz gibi bize welcome şeklinde bir cevap döndürüyor. Sizden linke odaklanmanızı istiyorum. Bir sorgu gitmiş ve bir cevap gelmiş. Biz de bunu bir kod ile deneyelim.
<h1>burak</h1>
Yukarıdaki gibi başlık sorgumu yazıyorum. Bize bu kez şöyle bir sonuç döndürdü.
Bu kez bize sıra dışı bir sonuç döndürdü. Bu demek oluyor ki benim verdiğim başlık kodunu çalıştırdı. Yani burada html kodları çalıştırabiliyorum. Bu kodu şu an deneme için kullandık. Bir de gerçekten sömürmek kullanılabilecek bir kod ile deneyelim.
<h1>burak</h1>
Bu kez Burak ya da yukarıdaki gibi bir ifade kullanmayacağım. Zafiyeti sömürmek için aşağıdaki kodu yazıyorum.
<h1>Hello,<script>alert(1)</script>!</h1>
Şimdi ise bu kodu açıklayalım.
<h1><h1/>
Yukarıdaki ile tekrar bir başlık istedik ve aşağıdaki ile de bir uyarı mesajı istedik.
<script>alert()</script>!
Bu kodlara HTML Injection başlığı şeklinde aratarak ulaşabilirsiniz. Tabi ki github sizin için daha uygun olacaktır. Şimdi dönen mesaja bakalım.
Verdiğimiz başlık hello olarak çalıştı ve script uyarımız da çalıştı. Kodu kusursuz bir şekilde çalıştırdık. Şimdi de kodda bir düzenleme yapalım.
<h1>Hello,<script>alert(1)</script>!</h1>
Yukarıdaki kodumuzda alert yani uyarı kısmında bir değişiktik yapalım. Biz () içine 1 yazarak 1 uyarısını verdik. (“hacked”) yazıp deneyelim.
<h1>Hello,<script>alert("hacked")</script>!</h1>
Yani kodu yukarıdaki gibi değiştiriyoruz. Bir de şimdi bakalım.
Bunun da çalıştığını gördük. Bu bölüm buraya kadardı, devamı için takip etmeyi unutmayın. 🙂