• Embed Doc
  • Readcast
  • Collections
  • CommentGo Back
Download
 
Cross Site Request Forgery Nedir?
Cross Site Request Forgery XSRF, CSRF ve Cross Site Reference Forgery olarak da bilinir.Site komutları genellikle özel işlemlerin yapılabilinmesine olanak sağlayan özel url’lerelinklenmiştir.(Örneğin:http://site/stocks?buy=100&stock=ebay) Eğer bir kullanıcı siteye girişyaptıysa ve saldırgan da kurbanın tarayıcısında yukarıdaki türden görev linklerini kullanarak  bazı hileler denerse aynen kullanıcı gibi siteye giriş yapabilir. Genel olarak saldırgan, yadirekt olarak ya da Cross Site Scripting(XSS) açığından yararlanarak kullanıcının bilgisiolmadan, özel görev linklerine istek gönderecek şekilde zararlı HTML ve JavaScript kodlarını bir e-postaya veya websiteye gömebilir. BBCode gibi bazı biçimleme dillerinde bu mümkünolabilmektedir.
CSRF ile Neler Yapılabilir?
Website tarafından izin verilen bir çok işlevsel modül, CSRF açığından yaralanılarak saldırganlar tarafından kullanılabilir. Bu; mesaj panosuna post atmak, online gazetelere aboneolmak, hisse senedi ticareti yapmak, alışveriş kartı kullanmak ve hatta e-kartlar göndermek  bile olabilir. CSRF aynı zamanda mevcut XSS açıklarının da exploit edilmesine aracılık edebilir. Şimdi şöyle düşünelim: XSS açığının olduğu bir online forum veya blog düşünün.Saldırgan burada CSRF’den yararlanarak kullanıcıların etkili solucan yazılımlarına maruzkalmasına neden olabilir. İşte bu yolla CSRF açığını kullanarak istediği siteye DoS saldırılarıdüzenleyebilir.
CSRF Saldırılarını Gerçekleştirmenin Genel Yolları Nelerdir?
CSRF ataklarını gerçekleştirmenin en popüler yolu, HTML image taglarını veya JavaScriptimage nesnelerini kullanmaktır. Saldırgan, bunları bir e-postaya veya websiteye gömer.Kullanıcı web siteyi veya e-postayı açtığı zaman, saldırganın belirlediği herhangi bir linkinçalıştırılması yönünde bir istek yapmış olur. Aşağıda, saldırganların bu tür isteklerigöndermesini sağlayan bazı yöntemler göreceksiniz.HTML Yöntemleri
IMG SRC
<img src="http://host/?command">
SCRIPT SRC
<script src="http://host/?command">
IFRAME SRC
<iframe src="http://host/?command">
 
JavaScript Yöntemleri
'Image' Object
<script>var foo = new Image();foo.src = "http://host/?command";</script>
'XMLHTTP' Object
(Bunu kullanacağınız zaman aşağıdaki “Yalnızca POST KullananUygulamalar Savunmasız Olabilir mi?” başlığına bir göz atın.) 
IE
<script>var post_data = 'name=value';var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");xmlhttp.open("POST", 'http://url/path/file.ext', true);xmlhttp.onreadystatechange = function () {if (xmlhttp.readyState == 4){alert(xmlhttp.responseText);}};xmlhttp.send(post_data);</script>
Mozilla
<script>var post_data = 'name=value';var xmlhttp=new XMLHttpRequest();xmlhttp.open("POST", 'http://url/path/file.ext', true);xmlhttp.onreadystatechange = function () {if (xmlhttp.readyState == 4){alert(xmlhttp.responseText);}};xmlhttp.send(post_data);</script>HTML/VBScript/JavaScript/ActionScript/JScript gibi dillerde ve diğer birçok biçimlendirmedilinde, kullanıcıların tarayıcılarında bazı işlemleri gerçekleştirmek için birçok yol mevcuttur.
Bu Güvenlik Açığı Tarayıcılarla mı Sınırlıdır?
Tabii ki hayır. Saldırgan bir scripti; word dökümanının, Flash dosyasının, filmin veyascriptlemeye izin veren diğer diğer döküman formatlarının içine de gömebilir. XMLdökümanlarından yararlanan uygulamalar, verinin daha çabuk derlenmesi için XMLderleyicilerini kullanır. XML dökümanlarındaki etiketler, XML derleyicilerine (*)URI’den ek 
 
dökümanlar talep etmesine yardımcı olur. Tarayıcılar bu tür saldırıları gerçekleştirmede daha baskın bir rol alır; fakat tek yöntem değillerdir.(*)URI(Uniform Resource Identifier): İnternet üzerinde kullanılan, bir kaynağı isimlendirmek veya kimliğini saptamak gibi işlemleri yapmakta kullanılan karakterler. Bu kimlikleme işlemi,özel protokoller kullanılarak World Wide Web gibi bir ağ üzerinde bu kaynağın yenidengösterilmesi ve sunulması şeklinde de yapılabilir.
Yalnızca POST Kullanan Uygulamalar Savunmasız Olabilir mi?
Evet. Eğer uygulama CSRF içeriyorsa, belirli bir bölgede çalıştırılan tarayıcı bileşenlerinikullanır. Herhangi bir web siteye remote POST isteklerini göndermek; XMLHTTP veya benzer şeyleri kullanarak mümkün olabilmektedir.Sadece POST tabanlı parametreleri kullanarak bir websitesine saldırmanın başka yolu davardır. Ama bu tamamen web uygulamasının nasıl programlandığına bağlıdır. Perl – CGI.PMgibi popüler web tabanlı kütüphaneler; GET veya POST istekleriyle gelmiş olmasına bakılmaksızın bir parametrenin çekilmesine izin verebilir. CGI.PM kullanımında olduğu gibi,saldırgan tarafından POST istekleri GET isteklerine dönüştürülebilir ve uygulama halaçalışıyor olacaktır. Aşağıda bir örnek:
Perl's CGI.PM
------------------------------use CGI qw(:all);$value = param('foo'); print "Content-type: text/html\n\n"; print "The 'foo' parameter value is $value\n\n\n";------------------------------Bu script, uygulamaya gönderilmek üzere ya GET ya da POST isteklerine izin verecektir. Busadece Perl ile sınırlı değildir ve kullandıkları kütüphaneye göre veya uygulamanın hangiyolla geliştirildiğine göre herhangi bir dilde de etkili olabilir. Eğer CGI.PM kullanıyorsanız veGET isteklerini engellemek istiyorsanız tek yol; '$ENV{'REQUEST_METHOD'}'kullanılarak kodlarınızın geri kalanını çalıştırmadan önce bir tarama yapmak için istek gönderme metodu uygulamaktır. Aşağıda, gönderilen GET veya POST istekleri için izin verendillerin, parametreleri çekmesini sağlayan genel yöntemler var.
JSP ÖrneğiGenelde Kullanılan
:request.getParameter("foo")
Çözüm
:HTTP istek metodunu kontrol edin ve istenilen eylemin gerçekleştirilmesinden öncePOST kullandığından emin olun.
PHP ÖrneğiGenelde Kullanılan
:$_REQUEST['foo']
Çözüm
:Sadece POST belirlemek için $_POST['foo'] kullanın.
of 00

Leave a Comment

You must be to leave a comment.
Submit
Characters: ...
You must be to leave a comment.
Submit
Characters: ...