Esenlikler! ben Anka Red Team'dan Alex.
Bugün sizlere HTML Injection zafiyetini anlatacağım. Vakit kaybeten başlayalım...
HTML Injection Nedir?
HTML Injection, bir web uygulamasının kullanıcıdan gelen veriyi filtrelememesi veya veriyi encode çevirmediği için oraya çıkan bir güvenlik zafiyetidir. XSS zafiyeti ile çok karıştırılır, çünkü XSS(Cross-Site Scripting) ile kardeş zafiyettir, ama aslında aralarında farklar vardır.
XSS(Cross-Site Scripting), tarayıcı da JavaScript kodu çalıştırırken, HTML Injection ise sitede HTML etiketini çalıştırır. Yani birisi JavaScript çalıştırırken, diğeri HTML etiketlerini çalıştırır.
Şimdi ise aynı XSS'te de olduğu gibi, bu zafiyette de aynı türler vardır:
- Stored (kalıcı)
- Reflected
- DOM-Based
Bunlardan en tehlikeli olanı süphesiz Stored yani kalıcı olan türüdür. Çünkü zararlı payload veritabanına kaydedilmiş ve herkeste çalışabilmektedir.
Size 2 zafiyetinde PoC'unu(Proof of Concept) göstereceğim:
Size 2 zafiyetinde PoC'unu(Proof of Concept) göstereceğim:
- HTML Injection: <h1>Merhaba</h1>
- XSS: <script>alert("Merhba")</script>
Şimdi ise zafiyetin kaynaklandığı yeri size göstereyim.
JavaScript:
card.innerHTML = `
<div class="meta">${f.time}</div>
<button class="delete-btn" onclick="deleteFeedback(${index})">Sil</button>
<div>${f.text}</div>
`;
Burada görüldüğü gibi, kullanıcıdan gelen veriyi direkt olarak div etiketine veriyor. Zafiyet buradan kaynaklanıyor.
Pratik
Şimdi zafiyeti teorik olarak öğrendiğimize göre, şimdi de pratik olarak öğrenelim ve test edelim. Kendi sitemde bu zafiyet mevcut, bundan dolayı kendi sitemden göstereceğim. Ayrıca belirtmek isterim ki: bu sitedeki zafiyet Stored(kalıcı).
İlk olarak bizi yorum sayfası karşılıyor, ilk olarak rastgele birşey yazıyorum ve sonucu görelim. Gördüğünüz üzere yorumumuz eklendi.
H1 etiketini kullanarak görüldüğü üzere büyük bir yazı eklendi, ve burada da zafiyetin mevcut olduğunu görüyoruz. Daha sonra index'imin kodlarını kopyalayıp, buraya yapıştırıyorum.
Evet, index'imizi aldı ve render etti. Zafiyeti sömürdük, bundan sonra mirror alabilirsiniz, eğer zafiyetin türü Stored ise
Son Söz
Bu konuda HTML Injection'u anlattım. Umarım anlamış ve öğrenmişsinizdir.
İyi forumlar.


