html injection tutorial
HTML Enjeksiyonuna Derinlemesine Bir Bakış:
HTML Injection'ı daha iyi algılamak için öncelikle HTML'nin ne olduğunu bilmeliyiz.
HTML, web sitesinin tüm öğelerinin etiketlere yazıldığı bir biçimlendirme dilidir. Çoğunlukla web siteleri oluşturmak için kullanılıyor. Web sayfaları tarayıcıya HTML belgeleri şeklinde gönderiliyor. Daha sonra bu HTML belgeleri normal web sitelerine dönüştürülüyor ve son kullanıcılar için görüntüleniyor.
Bu eğitim, size HTML Enjeksiyonu, türleri ve önleyici tedbirler hakkında eksiksiz bir genel bakış sunacak ve konsepti kolayca anlamanız için basit terimlerle pratik örnekler verecektir.
Ne öğreneceksin:
- HTML Enjeksiyonu nedir?
- HTML Enjeksiyon Türleri
- HTML Enjeksiyonu Nasıl Yapılır?
- HTML Enjeksiyonuna Karşı Nasıl Test Yapılır?
- HTML Enjeksiyonu Nasıl Önlenir?
- Diğer Saldırılarla Karşılaştırma
- Sonuç
- Önerilen Kaynaklar
HTML Enjeksiyonu nedir?
Bu tür bir enjeksiyon saldırısının özü, web sitesinin savunmasız kısımlarına HTML kodu enjekte etmektir. Kötü amaçlı kullanıcı, web sitesinin tasarımını veya kullanıcıya görüntülenen herhangi bir bilgiyi değiştirmek amacıyla herhangi bir güvenlik açığı olan alan üzerinden HTML kodu gönderir.
Sonuç olarak kullanıcı, kötü niyetli kullanıcı tarafından gönderilen verileri görebilir. Bu nedenle, genel olarak, HTML Enjeksiyonu, yalnızca biçimlendirme dili kodunun sayfanın belgesine yerleştirilmesidir.
Bu tip enjeksiyon saldırısı sırasında gönderilen veriler çok farklı olabilir. Yalnızca gönderilen bilgileri görüntüleyecek birkaç HTML etiketi olabilir. Ayrıca, tüm sahte form veya sayfa olabilir. Bu saldırı gerçekleştiğinde, tarayıcı genellikle kötü amaçlı kullanıcı verilerini yasal olarak yorumlar ve görüntüler.
Bir web sitesinin görünümünü değiştirmek, bu tür bir saldırının getirdiği tek risk değildir. Kötü niyetli kullanıcının diğer kişilerin kimliklerini çaldığı XSS saldırısına oldukça benzer. Bu nedenle başka bir kişinin kimliğinin çalınması da bu enjeksiyon saldırısı sırasında gerçekleşebilir.
HTML Enjeksiyon Türleri
HTML oldukça basit bir dil olarak kabul edildiğinden, bu saldırıyı anlamak veya gerçekleştirmek çok zor görünmüyor. Ancak, bu tür saldırıyı gerçekleştirmenin farklı yolları vardır. Bu enjeksiyonun farklı türlerini de ayırt edebiliriz.
İlk olarak, farklı türler getirdikleri risklere göre sıralanabilir.
Bahsedildiği gibi, bu enjeksiyon saldırısı iki farklı amaçla gerçekleştirilebilir:
- Görüntülenen web sitesinin görünümünü değiştirmek için.
- Başka birinin kimliğini çalmak.
Ayrıca, bu enjeksiyon saldırısı, web sitesinin farklı bölümleri, yani veri giriş alanları ve web sitesinin bağlantısı aracılığıyla gerçekleştirilebilir.
Bununla birlikte, ana türler şunlardır:
- Depolanan HTML Ekleme
- Yansıyan HTML Enjeksiyonu
# 1) Depolanan HTML Ekleme:
Bu iki enjeksiyon türü arasındaki temel fark, depolanan enjeksiyon saldırısının kötü amaçlı HTML kodu web sunucusunda kaydedildiğinde meydana gelmesi ve kullanıcı uygun bir işlevi her çağırdığında yürütülmesidir.
c ++ mesajla onaylama
Bununla birlikte, yansıtılan enjeksiyon saldırısı durumunda, kötü amaçlı HTML kodu web sunucusunda kalıcı olarak depolanmamaktadır. Yansıyan Enjeksiyon, web sitesi kötü niyetli girdiye anında yanıt verdiğinde gerçekleşir.
# 2) Yansıyan HTML Enjeksiyonu:
Bu yine daha fazla türe ayrılabilir:
- Yansıyan GET
- Yansıyan POST
- Yansıyan URL
Reflected Injection saldırısı, HTTP yöntemlerine, yani GET ve POST'a göre farklı şekilde gerçekleştirilebilir. POST yöntemi ile verilerin gönderildiğini ve GET yöntemi ile verilerin talep edildiğini hatırlatırım.
Windows için en iyi ücretsiz ssh istemcisi
Uygun web sitesinin öğeleri için hangi yöntemin kullanıldığını bilmek için sayfanın kaynağını kontrol edebiliriz.
Örneğin , bir test cihazı, oturum açma formunun kaynak kodunu kontrol edebilir ve bunun için hangi yöntemin kullanıldığını bulabilir. Daha sonra uygun HTML Enjeksiyon yöntemi buna göre seçilebilir.
Yansıyan GET Enjeksiyonu girişimiz web sitesinde görüntülendiğinde (yansıtılırken) oluşur. Diyelim ki, bu saldırıya karşı savunmasız olan arama formu içeren basit bir sayfamız var. Daha sonra herhangi bir HTML kodu yazarsak, web sitemizde görünecek ve aynı zamanda HTML belgesine enjekte edilecektir.
Örneğin, HTML etiketleriyle basit bir metin giriyoruz:
Yansıyan POST HTML Ekleme biraz daha zor. Doğru POST yöntemi parametreleri yerine kötü amaçlı bir HTML kodu gönderildiğinde ortaya çıkar.
Örneğin , HTML saldırısına karşı savunmasız bir giriş formumuz var. Giriş formuna yazılan veriler POST yöntemi ile gönderilmektedir. Daha sonra doğru parametreler yerine herhangi bir HTML kodu yazarsak, POST yöntemi ile gönderilecek ve web sitesinde görüntülenecektir.
Yansıtılmış POST HTML saldırısı gerçekleştirmek için, gönderilen verileri taklit edecek özel bir tarayıcı eklentisi kullanılması önerilir. Bunlardan biri Mozilla Firefox eklentisi 'Tamper Data' dır. Eklenti, gönderilen verileri devralır ve kullanıcının değiştirmesine izin verir. Daha sonra değiştirilen veriler web sitesinde gönderiliyor ve görüntüleniyor.
Örneğin, böyle bir eklenti kullanırsak aynı HTML kodunu göndeririz veya arama formu kodu, daha karmaşık bir şeyle test etmek isterseniz Aramak için metni yazın
Bir yere kaydedilen bir HTML kodu görüntülenirse, test eden kişi bu enjeksiyon saldırısının mümkün olduğundan emin olabilir. Daha sonra daha karmaşık bir kod denenebilir - Misal sahte giriş formunu görüntülemek için.
Diğer bir çözüm ise HTML Enjeksiyon tarayıcısıdır. Bu saldırıya karşı otomatik olarak tarama yapmak çok zaman kazandırabilir. Diğer saldırılara kıyasla HTML Enjeksiyon testi için çok fazla araç bulunmadığını bildirmek isterim.
Bununla birlikte, olası bir çözüm WAS uygulamasıdır. WAS, farklı girişlerle test ettiği ve yalnızca ilk başarısızlıkla durmadığı için oldukça güçlü bir güvenlik açıkları tarayıcısı olarak adlandırılabilir.
Test etmek için yararlıdır, belki yukarıdaki tarayıcı eklentisi 'Tamper Data' da belirtildiği gibi, gönderilen verileri alır, test edenin değiştirmesine izin verir ve tarayıcıya gönderir.
Ayrıca, yalnızca web sitesinin bağlantısını sağlamanız gereken ve HTML saldırısına karşı taramanın yapılacağı bazı çevrimiçi tarama araçları da bulabiliriz. Test tamamlandığında, özet görüntülenecektir.
Bir tarama aracı seçerken, sonuçları nasıl analiz ettiğine ve yeterince doğru olup olmadığına dikkat etmemiz gerektiğini yorumlamak isterim.
Ancak manuel olarak yapılan testlerin unutulmaması gerektiği unutulmamalıdır. Bu şekilde, tam olarak hangi girdilerin denendiğinden ve tam olarak hangi sonuçları aldığımızdan emin olabiliriz. Ayrıca bu şekilde sonuçları analiz etmek de daha kolaydır.
Bir yazılım testi kariyerindeki deneyimimden yola çıkarak yorum yapmak isterim ki, her iki test yöntemi için de bu tip enjeksiyon hakkında iyi bilgiye sahip olmamız gerekir. Aksi takdirde, uygun bir otomasyon aracı seçmek ve sonuçlarını analiz etmek zor olacaktır. Ayrıca, kaliteden daha emin olmamızı sağladığı için manuel olarak test etmeyi unutmamanız her zaman önerilir.
HTML Enjeksiyonu Nasıl Önlenir?
Hiç şüphe yok ki, bu saldırının ana nedeni geliştiricinin dikkatsizliği ve bilgisizliği. Bu tür bir enjeksiyon saldırısı, giriş ve çıkış düzgün bir şekilde doğrulanmadığında gerçekleşir. Bu nedenle, HTML saldırısını önlemenin ana kuralı, uygun veri doğrulamadır.
Herhangi bir komut dosyası kodu veya herhangi bir HTML kodu içerip içermediğini her giriş kontrol edilmelidir. Kod herhangi bir özel komut dosyası veya HTML parantezleri -, içeriyorsa, genellikle kontrol edilir.
java windows 10 ile jar dosyaları nasıl açılır
Kodun herhangi bir özel parantez içerip içermediğini kontrol etmek için birçok işlev vardır. Kontrol fonksiyonunun seçimi, kullandığınız programlama diline bağlıdır.
Hatırlanmalı, o kadar iyi güvenlik testi aynı zamanda önlemenin bir parçasıdır. HTML Enjeksiyon saldırısı çok nadir olduğu için, bu konuda öğrenilecek daha az literatür ve otomatik test için seçilecek daha az tarayıcı olduğuna dikkat etmek isterim. Ancak, ne zaman olacağını asla bilemeyeceğiniz için, güvenlik testinin bu kısmı gerçekten gözden kaçırılmamalıdır.
Ayrıca, hem geliştirici hem de test eden kişi bu saldırının nasıl gerçekleştirildiğine dair iyi bilgiye sahip olmalıdır. Bu saldırı sürecini iyi anlamak onu önlemeye yardımcı olabilir.
Diğer Saldırılarla Karşılaştırma
Diğer olası saldırılara kıyasla bu saldırı kesinlikle çok riskli görülmeyecektir. SQL Enjeksiyonu veya JavaScript Enjeksiyon saldırısı hatta XSS olabilir. Veritabanının tamamını yok etmeyecek veya veritabanından tüm verileri çalmayacaktır. Ancak önemsiz görülmemelidir.
Daha önce de belirtildiği gibi, bu tür bir enjeksiyonun temel amacı, görüntülenen web sitesinin görünümünü kötü amaçla değiştirmek, gönderdiğiniz bilgileri veya verileri son kullanıcıya göstermektir. Bu riskler daha az önemli olarak kabul edilebilir.
Ancak, web sitesinin görünümünün değiştirilmesi, şirketinizin itibarına mal olabilir. Kötü niyetli bir kullanıcı web sitenizin görünümünü bozarsa, ziyaretçinin şirketiniz hakkındaki düşüncelerini değiştirebilir.
Unutulmamalıdır ki, web sitesine yapılan bu saldırının getirdiği bir başka risk, diğer kullanıcının kimliğini çalmaktır.
Belirtildiği gibi, HTML Enjeksiyonu ile kötü niyetli kullanıcı, son kullanıcı için görüntülenecek olan sayfanın tamamını enjekte edebilir. Ardından, son kullanıcı giriş verilerini sahte giriş sayfasında belirtecekse, kötü niyetli kullanıcıya gönderilecektir. Bu durum elbette bu saldırının daha riskli olan kısmıdır.
Diğer kullanıcıların verilerini çalmak için bu tür saldırıların daha az sıklıkla seçildiğinden bahsedilmelidir, çünkü birçok başka olası saldırı da vardır.
Ancak, kullanıcının çerezlerini ve diğer kullanıcı kimliklerini çalan XSS saldırısına çok benzer. HTML tabanlı XSS saldırıları da vardır. Bu nedenle XSS ve HTML saldırısına karşı testler çok benzer olabilir ve birlikte gerçekleştirilebilir.
Sonuç
HTML Enjeksiyonu diğer saldırılar kadar popüler olmadığından, diğer saldırılardan daha az riskli kabul edilebilir. Bu nedenle, bu tür bir enjeksiyona karşı yapılan testler bazen atlanır.
Ayrıca, HTML Enjeksiyonu hakkında kesinlikle daha az literatür ve bilgi olduğu dikkat çekicidir. Bu nedenle, test uzmanları bu tür testleri yapmamaya karar verebilir. Ancak bu durumda HTML saldırı riskleri yeterince değerlendirilmeyebilir.
Bu eğiticide analiz ettiğimiz gibi, bu tür Enjeksiyonla web sitenizin tüm tasarımı yok edilebilir veya kullanıcının oturum açma verileri bile çalınabilir. Bu nedenle, güvenlik testlerine HTML Enjeksiyonunun dahil edilmesi ve iyi bilgiye yatırım yapılması şiddetle tavsiye edilir.
Herhangi bir tipik HTML Enjeksiyonuna rastladınız mı? Aşağıdaki yorumlar bölümünde deneyimlerinizi paylaşmaktan çekinmeyin.
Önerilen Kaynaklar
- Yeni Başlayanlar İçin Derinlemesine Tutulma Öğreticileri
- SQL Injection Testing Tutorial (SQL Injection Attack Örneği ve Önlenmesi)
- Örneklerle Python DateTime Eğitimi
- Örnekler, Türler ve Önleme ile Siteler Arası Komut Dosyası Oluşturma (XSS) Saldırı Eğitimi
- JavaScript Enjeksiyon Eğitimi: Web Sitesinde JS Enjeksiyon Saldırılarını Test Edin ve Önleyin
- Örneklerle Unix Shell Komut Dosyası Oluşturma Eğitimi
- Selenyum Örneklerle Metin Öğreticisine Göre Eleman Bul
- Uygulamalı Örneklerle Python Ana İşlev Eğitimi