Joined
Jan 23, 2017
Credits
0
Rating - 0%
JavaScript Injection Genel Bakış


JavaScript, web sitelerinde ve web tabanlı uygulamalarda yaygın olarak kullanılan bir teknolojidir.JavaScript her türlü kullanışlıdır ve her işlev için kullanılabilir.Ancak buna ek olarak, düşünülmesi ve test edilmesi gereken ek güvenlik konuları da var. JavaScript, yalnızca iyi amaçlar için değil aynı zamanda kötü niyetli amaçlar için kullanılabilir.JavaScript'i kullanarak bir kişi formdaki mevcut bilgileri değiştirebilir.Sadece form giriş etiketlerini değiştirmek için değil, aynı zamanda şu anda tarayıcıda ayarlanmış çerezleri ve bir web sitesi veya web uygulaması içindeki herhangi bir değeri de değiştirebilirsiniz.Gerçekleştirmek istediğiniz herhangi bir parametre işleme türü genellikle Javascript enjeksiyonuyla yapılabilir.Geçerli bir oturumda herhangi bir javascripti çalıştırmak için, kullanıcı tarayıcının url çubuğundan http: // eksiği altındaki belirli javascript komutlarını girecektir. Tüm javascript komutları, javascript: etiketi ve ardından yürütülecek herhangi bir javascript komutu ile başlamalıdır.


JavaScript Çerez Değişikliği

JavaScript'i kullanan bir kullanıcı mevcut çerez ayarlarını değiştirebilir. Bunu, bazı temel JavaScript komutlarıyla gerçekleştirilebilir. Mevcut çerezlerinizin içeriğini görüntülemek için aşağıdaki JavaScript komutunu kullanın. Bunu tarayıcınızın URL çubuğuna yazın.

Code:
javascript:alert(d o c u m e n t .cookie);

Yukarıdaki "d o c u m e n t" arasındaki boşlukları silmeyi unutmayınız.
Bu komut geçerli çerezlerini listeleyen bir kutuyu açar. Kötü niyetli bir kullanıcı çerezdeki değerleri değiştirmek için javascript kullanabilir. Örneğin, test etmekte olduğunuz bir web uygulamasının, bir kullanıcı başarıyla oturum açtığında ve yetkilendirme testini geçtiğinde bir yetkilendirme çerezi ayarlamasını sağladığını söylüyoruz.

Çerez değerlerinin değiştirmek için kötü niyetli bir kullanıcının aşağıdaki gibi javascript tarayıcı içinde url çubuğuna yazması yeterlidir.

Code:
javascript:v o i d(d o c u m e n t.cookie="authorization=true");

Yukarıdaki "d o c u m e n t" ve "v o i d" arasındaki boşlukları silmeyi unutmayınız.
Bu, geçerli çerez parametresinin "authorization=false" değerinin "authorization=true" olarak değiştirilmesine neden olur. (authorization=yetkilendirme)
Hangi kötü amaçlı kullanıcı orijinal yetkilendirme testini geçmemiş olabilir ?
smile.gif

Kötü niyetli kullanıcı, yetkilendirme testini atlamış ve hassas içeriğe erişmiştir. Tahmin edebileceğiniz gibi, kötü niyetli kullanıcı doğru yetkilendirme işlemini atlamak için JavaScript enjeksiyonunu kullanabilirse, bu ayrıcalık yükselmesinde ciddi sorunlara neden olabilir.
JavaScript enjeksiyonu için test ediyorsanız ve çerezin değiştirilmiş olup olmadığını görmek istiyorsanız, çerez adını ve değerini test etmek istediğiniz çerezle değiştirmek isteyeceğiniz dışında, aşağıdakine benzer bir komut yürütürsünüz. Tanımlama bilgisini değiştirmek için javascript komutuyla başlayın ve daha sonra tanımlama bilgisinin ne için değiştirildiğini görmek için javascript uyarı fonksiyonunu kullanın.


Code:
javascript:v o i d(d o c u m e n t.cookie="authorization=true");javascript:alert(d o c u m e n t.cookie);


Yukarıdaki "d o c u m e n t" ve "v o i d" arasındaki boşlukları silmeyi unutmayınız.

Artık yeni çerez parametresini pop-up kutusunda görebilirsiniz.


JavaScript HTML Formu Değişikliği

Gizli formlar ve devre dışı formlar da dahil olmak üzere html formuyla herhangi bir değeri değiştirmek için javascript'i de kullanabilirsiniz. Aşağıda, form numarası 0 (veya sayfadaki ilk form) içindeki e-posta adlı bir girdi etiketinin nasıl ayarlanacağına dair bir örnek verilmiştir.


Code:
javascript:v o i d(d o c u m e n t.forms[0].email.value="[email protected]");


Yukarıdaki "d o c u m e n t" ve "v o i d" arasındaki boşlukları silmeyi unutmayınız.

Neyin değiştirileceğini ve nasıl değiştirileceğini belirlemek için html sayfasının kaynak kodunu görmeniz gerekecektir. Form numarasını doğrulayın ve doğru numarayı ayarlayın. İlk form her zaman 0'dır. Sonra, değiştirmek istediğiniz html etiketini arayın. Son olarak html etiketinin olmasını istediğiniz yeni değeri ekleyin. Bu, html formundaki bilgileri değiştirmenize izin verir.





Javascript Enjeksiyonuna Karşı Nasıl Korunabiliriz ?


Alınan girdiyi daima bir beyaz listeye karşı doğrulayın. Eğer bir kara liste kullanırsanız, muhtemelen kodlama sorunlarıyla karşılaşacaksınız. Girişi doğrularken her zaman bir beyaz liste kullanın.

Kullanıcı girdisini doğrulamak için istemci tarafı doğrulamasına güvenmeyin. Kullanıcı tarafında doğrulama, kullanıcının doğru verileri girmesine yardımcı olmak için mükemmeldir. Ancak kötü niyetli bir kullanıcı bunu kullanmaz ve istemci tarafı doğrulamasını atlayabilir. İstemci tarafında doğrulama hiçbir zaman bir güvenlik düzeltmesi olarak düşünülmemelidir. Giriş doğrulamak için javascript'in kullanılması kullanılmamalıdır. Gördüğünüz gibi javascript herhangi bir html sayfasında değiştirmek ve değiştirmek çok kolay.
Bir çerez ayarlarsanız, o çerezin aynı değere ve her istekte doğru olduğundan emin olun. Kötü niyetli bir kullanıcı oturumu sırasında istediğiniz zaman değeri değiştirebilir​


Mevcut Sayfalara Javascript Enjekte Etme

Parametreleri, çerezleri düzenlemek için yalnızca javascript'i kullanmanızın yanı sıra, sayfanın farklı şekilde işlenmesine, başka bir şey yapmaya veya diğer kötü niyetli şeylere neden olması için dinamik sayfalara da javascript ekleyebilirsiniz. Bir XSS saldırısı düşünün.
JavaScript'i kullanmak zordur. Daha kolay bir yol yok mu?

Aslında javascript enjeksiyonuyla yapabileceğiniz her tür parametre manipülasyonunu test etmek için daha kolay bir yol var. Parametrelerini anında değiştirmenize izin veren bazı proxy türlerini kullanmak daha kolaydır. Bunu bir dizi farklı uygulama ile yapabilirsiniz. Bunu yapmanıza izin veren bazı proxy uygulamalarından bazılarını ekledim.

-TamperData
-Paros Proxy

Code:
http://www.testingsecurity.com/how-to-test/injection-vulnerabilities/Javascript-Injection
 

Users who are viewing this thread

Top