XSS



* Birden fazla çeşidi vardır. Hedef sitede Html, Javascript; sunucu dillerinden asp, php kodlarını kullanarak kullanıcıya yönelik saldırılara el verişli olan bir script açığıdır.
* XSS açığı çok geniş bir açık türüdür ama mantıklar genel olarak ortaktır, web sitesinin URL'sinden veya form gibi bölümlerine web dilleri kullanarak kodlar yazılması ve bu kodların web sayfası tarafından 'kod' olarak okunması.(Ne kodları çalışrıracğınız sizin hayel gücünüze kalmış.)






XSS AÇIKLARI ARAYABİLECEĞİMİZ YERLER



* Adres çubuğu yani URL de "id" ve benzeri yerlerin sonunda "=" olan sayfalarda, sayfa içi arama bölümlerinde,
* Web sitesi Kayıt bölümlerinde,
* Görüş, öneri, şikayet vb. geri bildirim alanlarında,
Vb. yerlerde XSS açığı arayabiliriz.(Bunları hedef sitelerde tek tek denenebilir ama "Acunetix" gibi tarama programları aracılığıyla sitede XSS açığı olup olmadığı tespit edilip tespit edilen siteler üzerene yoğunlaşmak zamandan kazanç olacaktır.)



Hedefte bir siteniz yok ve XSS açığı olan siteyi hedef yapacaksanız, ve bu XSS açıklı siteler verecek dorklar arıyorsanız XSS açığı için dork yazma yöntemi yoktur ancak Sql açıklı sitelerde kullandığınız (Sql dork oluşturma ile alakalı konuma TurkHackTeam.org/WebServerGuvenligiVeZafiyetler/SqlDorkVeLoginSqlBypass tıklayarak ulaşabilirsiniz.) ve benzeri dorklarda XSS açığı da arayabilirsiniz.








XXS AÇIĞININ OLUP OLMADIĞINI MANUEL KONTROL



Bunun için sitede bulunan site içi arama bölümüne veya form vb. bölümlere Html, javascript, Asp, Php kodlarını yazarak kontrol etilebilir.


Hedef siteye Javascript kodları yazalım ve açık olup olmaddığını kontrol edelim.
(Sitenin sunucu dili Asp ise ">" bu şekilde yazılmalıdır.)
Sitede açık varsa Alert(Ekrana uyarı penceresi açmak. Bu uyarı mesajının yeri tarayıcıya göre değişir, üstte ortada olabilir.) olarak "Hacked By ubermensch" mesajı alacaksınız.






Bu işlemi url'de de deneyebiliriz:




Mesela url "http://www.ubermensch.org/search.php?=" bunun tanına da kodlar ekleyebiliriz
http://www.ubermensch.org/search.php?=
Açık varsa yine üsteki işlemdeki gibi alert almamız gerekir.




Eğer sizde web siteleri yapıyor ve bu açığın olmasını istemiyorsanız (security($...){$...=stripslashes($...); htmlspecialchars($...); return $... ;}("htmlspecialchars" ile html kodlarını kod olarak algılamaz, "stripslashes" ile de / işareti konulamaz hele getirebilebilir. trim() ile de boşluk konulması engellenebilir.) vb. functionlar tanımlayıp çekilen verilerde bu functionları filtre olarak kullanabilirsiniz. (Bu bir php ile yapılan bir function örneği bunu geliştirmek daha korynaklı hale getirmek sizlerin elinde.)










XSS TÜRLERİ




Stored (Persistent) XSS:
Girdiğimiz zararlı kodlar veritabanına kayt edilir ve sayfaya giren kullanıcılar bu koddan etkilenir.
örn: http://www.ubermensch.org/index.php?id=10 sayfasının URL'sinin id değeri yani "10" un yerinde "" kodlarını ekleyelim.
http://www.ubermensch.org/index.php?id=






Reflected XSS:
Mesajlar, resimler eklenir ama tam olarak index basılamayabilir. Yaptığınız işlemler veritabanına kayt edilmez sadece siz görürsünüz(ama zone kaydı almak gibi bir imkana sahip olabilirsiniz.), sizde yazdığınız kodları silerseniz yaptığınız işlem de gider.
örn:Web sitesi üzerinde kayt olma, site içi arama vb. bölümülerde bulunan form elemanları içine kodlar yazılabilir.
http://www.ubermensch.org/login.php sayfasının içinde bulunan form elemanının içine "" kodu yazıyoruz.





Dom (D,ocument Object Model) XSS:
Xss saldırıların en tehlikeli olanı denilebilir."#" işaretinden sonra kodların girilmesi ile Dom Xss in varlığı teyit edilebirlir. Sayfanın index kodlarıne erişilebilir, sayfaya virüs kodları entegre edilebilir.(Sosyal mühendislik vs. bir çok yöntem ile de kullanılabilir.)
örn: http://www.ubermensch.org/index.html sayfasının URL'sine "#" ve "" kodlarını ekleyelim.
http://www.ubermensch.org/index.html#
Ekranda alert mesajını görebiliriz ama sayfanın kaynağına baktığımızada bu kod ile karşılaşmayız bunun nedeni bu işlemin Dom tarafından gerçekleştirilmesidir.