Web Hacking'de Kullanılan Yöntemlere Detaylı Bakış Ve XSS

stalward

Katılımcı Üye
27 Eki 2007
509
6
KocaeLi
Bundan önceki "Genel Web Hack Yöntemleri Ve Güvenlik Yolları" başlıklı yazımda sizlere, saldırganların hangi yolları kullanarak hesapları çalmaya çalıştıklarını ve bunlardan nasıl korunacağınızı genel olarak anlatmıştım. Bu yazımda da yüzeysel olarak anlattığım, geniş bir yöntem yelpazesine hitap eden bu yollardan bir kaçını daha detaylı bir şekilde ele alacağım. Bunun içinde en popüler olan "Cross Site Scripting" ve "PHP Shell" tekniklerine değineceğim. Bu yöntemlerde diğer bir çok yöntem gibi bilgisayar bilimi ile uğraşmaya gerek kalmadan uygulanabilecek "lame" diye tabir edilen yöntemlerdir. Scannerlarla yapılan açık bulma ve açığı kullanma yöntemlerine oranla daha çok yetenek gerektirdiği ise kaçınılmazdır.

Öncelikle "Cross Site Scripting(XSS/CSS)" nedir bunu bir öğrenelim.
Cross Site Scripting, adında anlaşılacağı gibi bir scripting olayıdır. Yani scriptlerle oynanarak yapılan bir saldırı çeşitidir. Saldırgan, sitede bulunan herhangi bir yere bir script kodu (java,HTML vs..) ekleyerek, kullanıcılara ait bilgileri çalmayı hedefler.
Burda saldırgan kendi istediğini yaptıracak script kodunu karşı siteye ulaştırmak ve bunu başka üyelerin görmesini sağlamak zorundadır. Bu yüzden adı "Cross Site"dir.

Örnek vermek gerekirse, kullanıcıları sürekli login olma derdinden kurtaran cookie dosyaları bu yöntemle rahatlıkla çalınabilir. Siz her defasında cookiesine sahip olduğunuz bir siteyi ziyaret ettiğinizde, browserınız sizin login bilgilerinizi cookie dosyanızdan alarak karşı siteye iletir. Saldırgan sitede çalıştırdığı bir script kodu ile bu bilgileri kendine yollayabilir.

Daha detaylı ama basit bir örnekle açıklayalım ;

Bir web sitesine girdiniz ve bir arama kısmı var. Bu arama kısmına yazdığınız herşey aynı anda sitede görünmekte ve "Son Yapılan Aramalar" diye bir kısımda çıkmakta. Web sitenin sahibi, PHP kodlama konusunda acemi bir kişi, siz ise deneyimlisiniz. Yapılan aramaların ne olduğunu sitenin anasayfasına giren herkes görmekte.

Bir arama yapıyorsunuz ve aynen orda çıkıyor. Herhangi bir filtreleme veya kontrol mekanizması yok. Eğer ki kodlayan kişi, girilen özel karakterleri filtrelemediyse, site büyük tehlike altında.

Yapmanız gereken "" yazarak sitenin bu kodları çalışırıp çalıştırmadığına bakmak. Eğer ki cookie verisi ekranda çıkarsa, bilin ki bu sitede bir açık var. Burda girdiğimiz kod, bir javascript kodu olup, ekrana cookie verimizi basıyor.

Bu tarz bir durumla karşılaştığınızda istediğiniz HTML veya JavaScript kodunu girerek sitenin anasayfasını DEFACE edebilir hatta cookie dosyasını çalıp, içinden çıkan HASH'i kırarak ilk yazımda yazdığım yöntemlere bakarak, siteyi HACK bile edebilirsiniz.

Bu bir kodlama hatasıdır, açıktır, bunu halletmenin yolu HTML tagları filtrelemekten geçmektedir. Hiçbir PHP programcısı bu hataya düşmez ancak, yeni bir programcı bu hataları sık yapar.

Temelde XSS hep bu mantıkla çalışmaktadır. Kendi scriptinizi karşıdakinin görebileceği şekilde sitede çalıştırmanız gerekir. Bazen filtreleme bile yapılsa bu scriptler çalıştırılabilir. Bir çok escape fonksiyonu, encoding veya taglardaki karakterlerle oynama yoluyla scriptleri karşı tarafa geçirmek mümkün olmaktadır.

XSS'den korunmanın en önemli yolu, filtreleme değildir. Saldırganın cookie çaldığında eline geçen cookie'nin sahip olduğu yetkilerinin azaltılmasıdır. Filtreleme her zaman geçerli bir yöntem olamaz. Çünkü bir şekilde aşılabilir. Tedbir denilen şey, olayın olduktan sonra size zararını azaltan şeydir. Örnek gerekirse :), emniyet kemeri takmak bir tedbirdir. Çünkü kaza olursa sizi korur. Ama sizin birine arabayı "Dikkatli Kullan" demeniz veya "Ben dikkatli kullanıyorum" demeniz tedbir değildir :)

Birde PHPShell dediğimiz, saldırganın karşı sitenin bulunduğu sunucuda php üzerinden shell komutları çalıştırarak yaptığı saldırı yöntemi var. PHP ve Apache'nin dosya yönetimi üzerinde sahip oldukları hakları kullanarak saldırgan site nin bulunduğu sunucuda bir çok komut çalıştırıp, 777 gibi public yazmaya açık klasörlere saldırması ile sonuçlanıyor.

Bu saldırı yönteminde saldırgan sunucu üzerindeki sitede komut çalıştırabileceği bir açık bulup "curl" gibi komutlarla sunucuya dışardan bir php shell scripti sızdırarak makine içinde sitenin bir çok sahip olduğu hakkı kullanarak hem siteye hemde sunucudaki diğer sitelere saldırıalr yapıyor. Bu yöntemde bilimsel yöntemlerden uzak, ağ bilgisi gerektirmeyen "lame" diye tabir edilen yöntemlerden biridir. Korunma yolu sağlam permission ayarları yapmaktır. Ve sunucuda ki apache ve php permission ayarlarını sağlamlaştırmaktır.

Her Deface/Hack yapabilen kişi, bu işi tekniğiyle bilen kişi değildir. Bir çok hack sitesinin vermiş olduğu yazılımlar, dökümanlar ve güvenlik sitelerinde yayınlanan açıkları kullanan her sıradan bilgisayar kullanıcı deface veya hack yapabilir. Bu durumda site sahipleri öncelikle genel tedbirleri almak zorundadır. Çünkü kullandığınız bir forum scriptinde çıkan bir açık, bu işlerle hiç ilgisi olmayan biri tarafından bile kullanılabilir ve siteniz çok alakasız biri tarafından hacklenebilir.

Bir çok mass tool ve yayınlanan script açıklarını kullanarak bu işlere hevesli olan insan mevcut. %95 gibi bir oranı bu işleri mantığıyla ve yeteneğiyle yapan kişiler değil. Bildikleri kısıtlı yöntemler mevcut. En çok kullanılan 2 yöntemi daha detaylı ana hatları ile yukarda vermiş bulunmaktayım. Yapmanız gereken bu mantığı kullanıp daha detaylı araştırma yaparak önlem almaktır.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.