1. “İki tür fakir insan vardır. Birlikte fakir olanlar ve yalnız fakir olanlar. Birincisi gerçek fakir diğerleri
ise şanssız insanlardır.” Jean - Paul Sartre.
Merhabalar Arkadaşlar.
Uzun zaman oldu hiç bir konu paylaşamadım. Reldeki bir çok meseleler yüzünden doğru dürüs bir
Bilgisayarı da açamaz olduk. Şimdi bir fırsat buldum ve yine bir makale yazmak kararına geldim.
Bugünkü konumuz her birimizin ismi duymuş olduğu OWASP daha detay verecek olursak Owasp top
10 security vulnerabilities hakkında olucak.
Nedir OWASP?
Açık Web Uygulaması Güvenliği Projesi veya
OWASP, web uygulaması güvenliğine adanmış
uluslararası bir organizasyondur. Sundukları
materyaller dokümantasyonu, araçları, videoları ve
forumları içerir. Belki de en iyi bilinen projesi OWASP Top 10'dur.
OWASP top 10
OWASP Top 10, web uygulama güvenliği konusundaki güvenlik kaygılarını belirleyen ve en kritik
10 riske odaklanan, düzenli olarak güncellenen bir rapordur. Ve bu Rapor, tüm dünyadan bir güvenlik
uzmanları ekibi tarafından bir araya getirildi. OWASP, ilk 10'a “farkındalık belgesi” olarak atıfta bulunur
ve tüm şirketlerin güvenlik risklerini en aza indirmek ve / veya azaltmak için raporu kendi süreçlerine
dahil etmelerini önerir. Hatta ben söylerim ki, Ethical Hacking sahasında kim kendini geliştirmek vey a
daha iyi bir şeyler öğrenmek istiyorsa ilk önce
OWASP top 10 u incelemeli ve araştırmalı.
Nedenlerini yazımızın ardında daha iyi bir şekilde
anlayacaksınız.
Sağdakı resimde 2017 için raporu görmüş
oluyorsunuz..
2. Saldırganlar, işinize veya kuruluşunuza zarar vermek için başvurunuz boyunca birçok farklı yolu
kullanabilirler. Bu yolların her biri, dikkatini çekecek kadar ciddi olabilecek veya olmayabilecek bir riski
temsil eder.
Saldırganlar Saldırı Vektörleri Güvenlik Kontroller Teknik etkiler iş etkileri
zaafiyyetleri
Bazen bu yollar bulmak ve sömürmek için basitken ve bazen de çok zordur. Kuruluşunuz için
riski belirlemek üzere, her bir saldırgan, saldırı vektörü ve güvenlik zayıflığı ile ilgili olabilirlik durumunu
değerlendirebilir ve kuruluşunuzdaki teknik ve ticari etkini tahmini ile birleştirebilir.
Risk/ Tehdit nedir?
OWASP Top 10 Güvenlik zaafiyyetleri.
A1:2017
Injection
SQL, NoSQL, OS ve LDAP enjeksiyonu gibi enjeksiyon hataları, güvenilmeyen veriler bir
komut veya sorgunun bir parçası olarak yorumlayıcıya gönderildiğinde ortaya çıkar.
Saldırganın kötü amaçla verileri Yorumlayıcını istenmeyen komutları yerine getirme veya
uygun yetkilendirme olmadan verilere erişme konusunda kandırabilir.
A2:2017-Broken
Authentication
Bozuk bir kimlik doğrulama güvenlik açığı, saldırganın sistemde istediği herhangi bir
hesap üzerinde kontrol kazanmaya çalışmak için veya daha da kötüsü sistem üzerinde
tam kontrol elde etmek için manuel veya otomatik araçlar kullanmasına izin verebilir.
A3:2017-
Sensitive Data
Exposure
Birçok web uygulaması ve API, finansal, sağlık ve kişisel bilgiler gibi hassas verileri düzgün
şekilde korumaz. Saldırganlar, kredi kartı sahtekarlığı, kimlik hırsızlığı veya diğer suçları
işlemek için bu gibi zayıf korunan verileri çalabilir veya değiştirebilir.
A4:2017-XML
External Entities
(XXE)
Çoğu XML ayrıştırıcısı, varsayılan olarak XXE saldırılarına açıktır. Bu nedenle,
uygulamanın bu güvenlik açığına sahip olmamasını sağlama sorumluluğu temel olarak
geliştiriciye aittir.
3. A1: İnjection
Bir saldırgan web uygulamasına geçersiz veriler gönderdiğinde, uygulamanın tasarlandığı /
programlandığı şeyden farklı bir şey yapması için bir kod enjeksiyonu olur. Muhtemelen bu güvenlik
açığı etrafındaki en yaygın örnek, güvenilmeyen verileri tüketen SQL sorgusudur. OWASP’in
örneklerinden birini aşağıda görebilirsiniz:
String query = "SELECT * FROM accounts WHEREcustID = '" + request.getParameter("id") + "'";
Bu tür saldırılarla web uygulamalara zararlı kodlar yürüterek Veritabanından hassas bilgileri ele
geçirmek mümkündür. Günümüzde bu türlü saldırıları yapan bir çok araç (sqlmap, havij, jsql vb) vardır.
İnceliyoruz....
A5:2017-Broken
Access Control
Kimliği doğrulanmış kullanıcıların yapmasına izin verilen kısıtlamalar genellikle uygun
şekilde yapılmaz. Saldırganlar, diğer kullanıcıların hesaplarına erişmek, hassas dosyaları
görüntülemek, diğer kullanıcıların verilerini değiştirmek, erişim haklarını değiştirmek vb.
Yetkisiz işlevlere veya verilere erişmek için bu kusurlardan yararlanabilir.
A6:2017-
Security
Misconfiguration
A7:2017- Cross-
Site Scripting
(XSS)
Siteler Arası Komut Dosyası Çalıştırma (XSS), birçok web uygulamasını etkileyen yaygın
bir güvenlik açığıdır. XSS, saldırganların kurbanın tarayıcısında, kullanıcı oturumlarını ele
geçirebilecek, web sitelerini tahrif edebilecek veya kullanıcıyı kötü amaçlı sitelere
yönlendirebilen komut dosyaları yürütmesine izin verir.
A8:2017-
Insecure
Deserialization
Güvensiz seriyi kaldırma genellikle uzaktan kod yürütülmesine neden olur. Seri dışı
bırakma kusurları uzaktan kod yürütülmesine neden olmasa bile, tekrarlama saldırıları,
enjeksiyon saldırıları ve ayrıcalık yükselme saldırıları dahil saldırıları gerçekleştirmek için
kullanılabilir.
A9:2017-Using
Components with
Known
Vulnerabilities
Kütüphaneler, çerçeveler ve diğer yazılım modülleri gibi bileşenler, uygulama ile aynı
ayrıcalıklarla çalışır. Korunmasız bir bileşenin kullanılması durumunda, böyle bir saldırı
ciddi veri kaybını veya sunucu ele geçirilmesini kolaylaştırabilir. Bilinen güvenlik açığı
olan bileşenleri kullanan uygulamalar ve API'ler uygulama savunmasını kırabilir ve çeşitli
saldırı ve etkilere neden olabilir.
A10:2017-
Insufficient Logging
& Monitoring
Olay yanıtı ile eksik veya etkisiz entegrasyonla birleştirilmiş yetersiz kayıt ve izleme,
saldırganların sistemleri daha fazla saldırmalarına, kalıcılığını sürdürmelerine, daha fazla
sisteme dönmelerine ve verileri kurcalamalarına, çıkartmalarına veya tahrip etmelerine
olanak sağlar.
Güvenlik yanlış yapılandırması en sık görülen konudur. Bu genellikle güvensiz varsayılan
yapılandırmalar, eksik veya geçici yapılandırmalar, açık bulut depolama, yanlış
yapılandırılmış HTTP başlıkları ve hassas bilgiler içeren ayrıntılı hata mesajlarının bir
sonucudur.
4. A2: Broken Authentication
Birçok web sitesi kullanıcıların hesaplarına erişmek, bir
satın alma işlemi yapmak, vb. İçin giriş yapmasını gerektirir.
Sık sık, bu bir kullanıcı adı ve şifre kullanılarak yapılır. Bu
bilgiyle, bir site giriş yapmış her ziyaretçiye, kullanıcının
sunucudaki kimliğinin anahtarı olarak hizmet veren benzersiz
bir oturum kimliği atar ve gönderir.
Doğru şekilde korunmazsa, hatalı bir kimlik doğrulama
ve oturum yönetimi şeması bir saldırganın geçerli bir
kullanıcıyı taklit etmesine neden olabilir.
Nasıl yapılır?
Bir ziyaretçi bir web sitesinde oturum açtığında, site
benzersiz bir oturum kimliği oluşturmak için özel bir algoritma
kullanır. Ziyaretçinin cihazı daha sonra bu oturum kimliğini,
oturum açma oturumunun geri kalanında kimliğinin anahtarı olarak kullanır. Bu bilgilerin tümü,
ziyaretçi ve sunucu arasında ileri geri gönderilmelidir. Bu, özellikle başkalarının erişebileceği ve
muhtemelen araya girebileceği bir kamu ağı (kahvehane gibi) üzerinde çalışırken geçerlidir.
Bir saldırganın üstlenebileceği bir başka yaklaşım, bir kullanıcının doğru şifresini tahmin etmek
amacıyla tekrar tekrar ortak şifreleri denedikleri kaba kuvvet saldırısı (Brute force) yapmaktır.
Saldırganların rastgele oturum kimlikleri oluşturması (login) da mümkündür. Örneğin, bir saldırgan
numaralandırılan birkaç meşru oturum kimliğini yakalarsa, bir sonraki meşru oturum kimliğini tahmin
etmek ve siteye sahte bir şekilde erişmek mümkündür.
A3: Sensitive Data Exposure (Hassas veri maruziyyeti)
Bu türlü güvenlik açıkları kriptografik hassaslıkla gizli kalması gereken verilerin, gizliliğin
bozulması ve ya bir şekilde erişebilir olmasıdır. Bazen bazı bu verilen Veritabanında Şifreli olarak
saklanılmaz ve en basit SQL injection saldırılarında kolaylıkla erişile bilir. Başka bir örnek vermek
gerekirse bazen bu tür hassas veriler yanlış izinlendirilmeden (permission, chmod) kaynaklana
bilinmektedir. Örn aşağıdakı görüntüsünde Wordpress siteler için veritabanı bilgilerini taşıyan wp-
5. config.php.txt her kes tarafından erişilebilir bir durumdadır. Bu da saldırgan için güzen fürsetler
sunmaktadır. Saldırgan bununla uzaktan mysql erişim kura bilir. Ve ya FTP ye yönelik Brute force
saldırısı gerçekleştire bilir.
Diger bir yaygın hatalardan birsi zayıf şifreleme algoritmaları ve ya basit anahtarlar
kullanılmasıdır. İyi bir CPU ya sahip bilgisayarlarla, bir kaç sene önce Güvenli olunarak düşünülen md5
lere karşı sözlük saldırısı yapabilirler. Ve ya daha basit olarak hashkiller.co.uk gibi servisleri kullana
bilirler.
A4:XML external entity –XXE (XML dış varlık)
Bir XML Dış Varlık (XXE) saldırısı (bazen XXE enjeksiyon saldırısı olarak adlandırılır) Sunucu Tarafı
İsteği Sahteciliği'ne (SSRF) dayanır. Bu tür bir saldırı, XML ayrıştırıcılarının yaygın olarak bulunan ancak
nadiren kullanılan bir özelliğini kötüye kullanır. Bir saldırgan XXE kullanarak, Hizmet Reddi'ne (DoS)
neden olabilir, ayrıca yerel ve uzak içerik ve hizmetlere de erişebilir. Bazı durumlarda, XXE bağlantı
noktası taramasını bile etkinleştirebilir ve uzaktan kod yürütülmesine neden olabilir. İki tür XXE saldırısı
vardır: bant içi ve bant dışı (OOB-XXE).
XML (Genişletilebilir İşaretleme Dili) çok popüler bir veri biçimidir. Web servislerinden (XML-
RPC, SOAP, REST) dokümanlara (XML, HTML, DOCX) resim dosyalarına (SVG, EXIF verileri) kadar her
şeyde kullanılır. XML verilerini yorumlamak için, bir uygulamanın bir XML ayrıştırıcısına (ayrıca XML
işlemci olarak da bilinir) ihtiyacı vardır.
Nasıl yapılır?
Aşağıda, XML girişini kabul eden, onu çözümleyen ve sonucu veren basit bir web uygulamasının
bir örneği verilmiştir.
6. XML'yi öğeleri, nitelikleri ve metni bildirmekten daha fazlası için kullanabilirsiniz. XML belgeleri
belirli bir türde olabilir. Tür tanımını belirterek bu türü belgede beyan edersiniz. XML ayrıştırıcısı, XML
belgesinin belgeyi işlemeden önce bu tür tanımlamaya uyup uymadığını doğrular. İki tür tür tanımı
kullanabilirsiniz: bir XML Şeması Tanımı (XSD) veya Belge Türü Tanımı (DTD). Belge Türü Tanımlarında
XXE açıkları ortaya çıkar. DTD'ler eski olarak kabul edilebilir ancak yine de yaygın olarak
kullanılmaktadır. SGML'den (XML'in atası) elde edilirler.
Aşağıdaki bir XXE payload örneğidir. Dünya kelimesi için bir takma ad olan bar adında bir öğe
içeren foo adı verilen bir Belge Türü Tanımıdır. Bu nedenle, herhangi bir zaman ve &bar;
kullanıldığında, XML ayrıştırıcısı bu varlığın yerine Dünya kelimesini koyar.
Zararsız görünebilir, ancak saldırgan varlıkları varlıklar içindeki varlıkları içine yerleştirerek hizmet
reddine neden olmak için XML varlıkları kullanabilir. Bu saldırıya genellikle Milyar Gülüşmeler saldırısı
denir. XML ayrıştırıcısının belleğini aşırı yüklüyor. Bazı XML ayrıştırıcıları, kullanabilecekleri bellek
miktarını otomatik olarak sınırlandırır.
Saldırganlar, XML kullanılabilirliğini uygulama kullanılabilirliğini azaltmaktan daha fazlası için
kullanabilirler. Bunun nedeni, XML belgesinde XML varlıklarını tanımlamanız gerekmediğindendir.
7. Aslında, XML varlıkları dış kaynaklar da dahil olmak üzere neredeyse her yerden gelebilir (bu nedenle
XML Dış Varlık adı). Bu, XXE'nin bir tür Sunucu Tarafı İsteği Sahteciliği (SSRF) saldırısı haline geldiği
yerdir.
Bir saldırgan bir URI kullanarak aşağıdaki isteği yapabilir (XML'de sistem tanımlayıcısı olarak bilinir).
XML ayrıştırıcısı harici varlıkları işleyecek şekilde yapılandırılmışsa (varsayılan olarak, birçok popüler
XML ayrıştırıcısı bunu yapacak şekilde yapılandırılmışsa), web sunucusu sistemdeki bir dosyanın
içeriğini, potansiyel olarak hassas veriler içeren döndürür.
Elbette, bir saldırgan sistem dosyaları ile sınırlı değildir. Kaynak kodu dahil diğer yerel dosyaları
kolayca çalabilirler (eğer web uygulamasının yerini ve yapısını biliyorlarsa). Bazı XML ayrıştırıcılarda,
yerel kaynakların içeriğine ek olarak dizin listeleri bile mümkündür.
XML Dış Varlık saldırıları, saldırganın yerel ağdaki dosyalara düzenli HTTP istekleri yapmasına bile
izin verebilir (yani, yalnızca güvenlik duvarının arkasından erişilebilir).
8. /etc /fstab, XML gibi görünen bazı karakterler içeren bir dosyadır (XML olmasalar bile). Bu, XML
ayrıştırıcısının bu öğeleri denemesine ve ayrıştırmasına, yalnızca geçerli bir XML belgesi olmadığını fark
etmesine neden olur.
Bu nedenle, bu XML Dış Varlığı (XXE) aşağıdaki iki önemli yolla sınırlar.
• XXE yalnızca “geçerli” XML içeren dosyalar veya yanıtlar almak için kullanılabilir
• XXE ikili dosyaları elde etmek için kullanılamaz
Örnek bir saldırı...
Hack.me üzerinde bir XXE lab buldum arkadaşlar.
Bize bir giriş sunmakta ve bizim işimiz Admin panele
Erişmektir.
Şimdi arkadaşlar Bir okuduklarımızı hatırlayalım.
İlk olarak hedef üzerinde Http istekleri görmek ve
Müdahele etmek için Burp yazılımını açalım ve proxy
Ayarlarını yapalım.
9. Evet arkadaşlar rastgele bir login girelim.
Evet arkadaşlar gördüğünüz gibi rastgele bir deneme sonrası bize incorrect username or password
tarzında bir cevap döndürüyor.
Bakalım login kısmında admin şeklinde bir istek gönderirsek ne cevap dönür.
Evet arkadaşlar gördüğünüz gibi yine aynı cevabı yolladı. Fakar bu defa bir şifreli bir anahtar da kendi
beraberinde getirdi. Bu bir base64 şifreleme. Hemen açalım.
10. Decode ettikten sora çıkan sonuca bakırsak ana dizinde secret.txt isminde bir dosyanın olduğu
görüyoruz. Hemen inceleyelim.
Evet arkadaşlar işte giriş şifrelerini bize sunuyor...
A5:Broken access control (Kırık Erişim Kontrolü)
Erişim kontrolü, kullanıcıların amaçlanan izinlerinin dışında hareket edemeyecekleri bir
politika uygular. Hatalar, tipik olarak, tüm verilerin yetkisiz bilgilerin ifşa edilmesine,
değiştirilmesine veya imha edilmesine veya bir kullanıcı işlevinin kullanıcının sınırları dışında
kalmasına neden olur.
Ortak erişim denetimi güvenlik açıkları şunlardır:
• Erişim kontrolünü atlamak, URL’yi, dahili uygulama durumunu veya HTML sayfasını
değiştirerek veya yalnızca özel bir API saldırı aracı kullanarak denetler
• Birincil anahtarın başkalarının kullanıcı kaydı ile değiştirilmesine izin vermek, başkasının
hesabını görüntülemek veya düzenlemek için izin vermek.
• Ayrıcalık yükselmesi. Giriş yapmadan kullanıcı olarak hareket etmek veya kullanıcı olarak
giriş yaptığınızda yönetici olarak hareket etmek.
• JSON Web Token (JWT) erişim kontrol belirteciyle yeniden oynatma veya kurcalama veya
ayrıcalıkları yükseltmek için manipüle edilmiş bir çerez veya gizli alan veya JWT geçersiz
kılmayı kötüye kullanma gibi meta veri işleme
• CORS yanlış yapılandırması yetkisiz API erişimine izin veriyor.
• Kimliği doğrulanmamış bir sayfaya kimliği doğrulanmamış bir kullanıcı olarak veya standart
bir kullanıcı olarak ayrıcalıklı sayfalara zorlayın. POST, PUT ve DELETE için eksik erişim
kontrolleriyle API’ye erişim.
Daha iyi örnek verecek olursak exploit sitelerinde user priveladge esclation şeklinde olan tüm
exploitler bu zafiyyetin en basit örneklerinden biridir.
A6:Security Misconfiguration (Yanlış güvenlik yapılandırılması)
Sistem üzerinde çalışan uygulamaların ön tanımlı ayarlarda bırakılması durumunda ortaya çıkan
zafiyetlerdir. Saldırgan bu durumda ön tanımlı ayarları tahmin ederek sisteme erişim sağlar. Bu zafiyet
türünde yanlış yapılandırma da saldırgana fırsat verir.
11. Çeşitli kusurlara yol açan yanlış sunucu veya web uygulaması yapılandırması:
• Hata ayıklama etkin.
• Yanlış klasör izinleri.
• Varsayılan hesapların veya şifrelerin kullanılması.
• Kurulum / Yapılandırma sayfaları etkin.
Tüm verileriniz zaman içinde yavaşça çalınabilir veya değiştirilebilir.
Mevcut uygulama güvenliği mimarileri varsayılan olarak güvenliği izlemez. Aksine, programcılar
özel veya gizli kaynaklara erişimi önlemek için güvenlik önlemleri almak zorundadır.
Daha iyi bir örnek verecek olursak, yukarıda belirttiğim Wordpressdeki wp-config.php
dosyasının erişebilir olması aslında bu zafiyyete de uygun gelmektedir. Ve ya bir çoklarımızın
karşısına çıkan inurl:/setup.php gibi dorklar da bu zaafı barındılan sistemlerı hedeflemektedirler.
Bu zaaflar daha çok sistem yeni kurulduğunda ve yapılandırıldığıda ortaya çıkar. Gerekli
dosyaların kaldırılmaması sebebiyle saldırganlar bu dosyalara erişebilir, hatta sunucuya ve yine
hatta Hassas verilere bile erişe bilirler.
A7: Cross site scripting (xss)
Günümüzde bolluca bulunan XSS Saldırısı, saldırganın diğer kullanıcıların gördüğü web
sayfalarına zararlı komut dizileri eklemesine olanak tanır. XSS saldırıları, Web Saldırılarının en yaygın
biçimlerinden biridir ve tüm web saldırılarının % 12.75‘ini şaşırtıcı derecede bu saldırı türü oluşturur.
Bazıları bunun zayıf tehdit oluşturduğunu söylese de bu benim en sevdiğim zafiyyetlerden birisidir.
Günümüzde büyük firmalarda bile bu zaafiyyetler bulunmaktdırlar.
XSS, Cross Site Scripting için bir güvenlik kısaltmasıdır. Geçmişteki XSS Saldırılarından etkilenen
göze çarpan siteler; Twitter, Facebook ve Youtube. Son yıllarda, XSS güvenlik açıkları en yaygın şekilde
exploit enjekte edilmiş (sömürülmüş) güvenlik açığı haline geldi. Tüm web güvenlik açıklarının yaklaşık
% 70’i XSS ile ilgilidir.
Nasıl yapılır?
Adım 1 : Saldırganlar, genelde kullanıcı adları, şifreler veya fatura bilgileri gibi kullanıcı verilerini
incelemek amacıyla kötü niyetli bir script dosyası tasarlarlar.
Adım 2 : Saldırganlar, kötü amaçlı scripti bir web sitesine ekler. Komut bir şekilde kullanıcıya iletilir ve
kullanıcı komut eklenmiş siteye eriştiği zaman kullanıcı çerezleri habersizcesine çalınıyor.
Adım 3 : Saldırganlar bundan sonra, kullanıcı verilerini başarıyla toplarken olaydan geri bildirim alırlar.
12. XSS türleri.
Xss zaafiyyeti reflected, stored, ve DOM based olmak üzre 3 yere ayrılmaktadır.
Reflected xss : Site url lerin sonlarına script kodlarını eklemekle ortaya çıkar. Örnek vericek olursak
http://site.com/index.php?id=<script>alert(‘xss’)</script> siteye script kodları ekledikten sonra bir
alert mesaji dönerse XSS zafiyyeti vardır demektir. Örnek olarak Acer firmasının resmi sitesnde
bulduğum reflected xss açığını göstermek isterim.
13. Stored xss : bir yorum, veritabanı veya forum gibi hedef sunucularda enjekte edilen ve saklanan komut
dosyasıdır. Daha sonra, legal bir kullanıcı siteyi kullanırken komut dosyası yürütülebilir. Bilgiler bu yolla
çekilebilir. Bu daha çok konu altına yorum eklenen sitelerede (forum ve sair) Guestbook eklentileri olan
sitelerde bulunmaktadır.
Örnek gösterecek olursak
Burada yorum yapma kısmına kendi Xss payloadımızı ekliyoruz ve bu sitenin bu sayfasına dahil olacak
Tüm kullanıcılar, insanlar böyle bir alertle karşı karşıya gelecekler.
Dom based Xss : DOM Tabanlı XSS, bir HTML parçasında değil DOM (Document Object Model)’da
meydana gelen XSS zafiyetidir” denilebilir. Stored ve Reflected XSS saldırılarında, saldırı sonrası dönen
sayfada XSS atağını görmek mümkünken; DOM tabanlı XSS saldırılarında HTML kaynağı ve dönen
yanıt, tamamen aynı olacaktır. Başka bir deyişle, XSS atağı dönen sayfada bulunamaz ve sadece
runtime sırasında ya da sayfanın DOM’u incelenirken gözlemlenebilir.
Örnek verecek olursak....
Bir site düşünelim site.com/page.html ve bu site kaynak kodlarında aşağıdakı şekilde bir kod
barındırıyor.
http://site.com/page.html#<script>alert(1)</script> gibi bir HTTP isteği gönderdiğinizde JavaScript
kodunun çalışması için yeterli olacaktır. Çünkü siz document.write fonksiyonuyla URL’ye ne yazarsanız
sayfa da onu ekrana yazar. Sayfanın kaynağına baktığınızdaysa <script>alert(1)</script> kodunu
görmezsiniz. Bunun sebebiyse olan biten her şeyin DOM’da gerçekleşmesi ve JavaScript kodu
tarafından çalıştırılmasıdır.
Zararlı JavaScript kodu sayfa tarafından çalıştırıldıktan sonra, kullanıcıya ait çerezlerin (cookie)
çalınması veya sayfa davranışının istenildiği gibi değiştirilmesi amacıyla, DOM tabanlı XSS zafiyetinin
basit bir şekilde exploit edilmesi mümkündür.
14. A8: Insecure Deserialization (Güvensiz Seritleşme)
Bu güvenlik açığı, saldırganların serileştirilmiş nesneleri kullanarak bir yük taşımalarını sağlar.
Bütünlük kontrolleri yerinde olmadığında ve seri hale getirilmiş veriler sterilize edilmediğinde veya
doğrulanmadığında bu zaafiyyet olur.
Serileştirme ve Seri kaldırma Nedir?
Serileştirme, nesneyi depolamak veya onu belleğe, bir
veritabanına veya bir dosyaya aktarmak için bir bayt akışına
dönüştürme işlemidir. Temel amacı, gerektiğinde yeniden
yaratabilmek için nesnenin durumunu kurtarmaktır.
Bunun tersi ise Seri kaldırma adlandırılıyor.
Serileştirme modülünde unserialize() işlevine iletilen güvenilmeyen
veriler, derhal çağrılan bir işlev ifadesiyle (IIFE) serileştirilmiş bir JavaScript Nesnesini geçirerek rasgele
kod yürütme gerçekleştirmek için kullanılabilir.
A9: Using Components With Known Vulnerabilities (Bilinen güvenlik açıkları
olan bileşenleri kullanmak)
Güvenlik açığı bulunan bazı bileşenler (örneğin, çerçeve kütüphaneleri) otomatik araçlarla
tanımlanabilir ve bunlardan yararlanılabilir, böylece tehdit ajanı havuzu hedefli saldırganların ötesinde
kaotik aktörler içerecek şekilde genişletilebilir.
Hemen hemen her uygulamanın bu sorunları vardır çünkü çoğu geliştirme ekibi
bileşenlerinin/kütüphanelerinin güncel olmasını sağlamaya odaklanmaz. Çoğu durumda, geliştiriciler
kullandıkları tüm bileşenleri bile bilmiyor, sürümlerini incelemiyorlar ve ya görmezden geliyorlar.
Bileşen bağımlılıkları işleri daha da kötüleştirir.
15. Örn bir web scriptinde bir zaaf ortaya çıkar ve paylaşılırsa elbette scripti yapan firma bunu düzenler.
Fakat bazı Adminler bu gibi hüsuslara dikkat etmezler ve zaafiyyet taşıyan bileşenlere karşı hiç bir
önlem almazlar. Zaten Saldırganlar ilk önce versiyona uygun exploitleri araştırıyorlar.
A10 : Insufficient Logging And Monitoring (Yetersiz kayıt ve izleme)
Güvenlik açısından kritik olaylar düzgün bir şekilde kaydedilmediyse ve sistem mevcut olayları
izlemiyorsa, yetersiz günlüğe kaydetme ve izleme güvenlik açığı ortaya çıkar. İnkar edilemez bir
şekilde, bu işlevselliklerin eksikliği, kötü niyetli etkinliklerin tespit edilmesini zorlaştırabilir ve bir
saldırı olduğunda etkili olayı ele almayı etkiler.
Uygulamalar birkaç bileşen kullanır ve genellikle günlükler oluşturulmaz veya bazı diğer
bileşenlerle paylaşılır. Otomatik araçlarla birlikte algılanması zor, çeşitli hata durumları için manuel
analiz esastır.
Bu zaafı kullanarak saldırganlar sisteme daha sıklıkla saldırır, hatta sisteme daha uzun süre
kalabilirler.
Evet arkadaşlar. Bu yazıyi da burda bitirmek istiyorum. Saygılarla....
Mikayıl İlyasov / Cyber-warrior.org - Lojistik