XSS Nədir?
XSS(Cross Site Scripting – Çarpaz Skript Faylı Calıştırma) 1 növ Attack(hücum)-dır.Bu Attack növü JavaScript-ə dayanır. XSS Açığı ilə siz Cookie-ləri əldə edə bilərsiz. CSRF/XSRF(Cross Site Reguest Forgery) quraraq Cookie-lər Oğurlana bilinər. XSS vulnlu olan saytların çoxunda HTML İnjection-da mövcud olur. HTML İnjection nədir? XSS Açığı vasitəsilə yada heləcədə HTML İnjection olan saytlarda HTML Kodlarımızı injeksiya etmək deməkdir.Yəni HTML kodlarımızı işə salmaq.XSS nəyə görə CSS yox-da XSS deyə çağırılır? Çünki CSS (Casdanding Style Sheets) Saytlar üçün şablon hazırlamaq üçün hazırlanmış xüsusi dildir.
XSS nədən yaranır? Yaranma səbəbi nədir?
Deməli İlk öncə biz hostumuzda hello.php faylın yaradırıq. Bu zaman XSS açığının qaynaqlanma səbəbi :
<?php$degisen = $_GET['af'];print $degisen ;?>
Burda adi $_GET-dən istifadə olunub.
Yəni http://saytımız.domain/hello.php?af= olur. İndi biz bura nə yazsaq ekranda çıxacaq.
Attacker-də ilk öncə XSS test etmək üçün ‘></script>alert(1);</script> yada “></script>alert(1);</script> yazar. Əslində bu XSS-in min bir növü var. Hər cür bypass-ı var. Nəysə artıq nədən qaynaqlandığını bilirik. Bu Açıq ən çox axtarış taglarında , istifadəçi İD-lərində eləcədə guestbook-larda qarşımıza çıxır.İndi qayıdaq misal-ımıza :
http://saytımız.domain/hello.php?af=<h1>Owned</h1>
Bu zaman ekrana Owned yazısı gəlsə deməli saytda HTML İnj.(İnjection) var.İndi isə XSS Yoxlayaq:
http://saytımız.domain/hello.php?af=’></script>alert(1);</script>’
Burda tək dırnaq(quote) işlətməmizin səbəbi cüt dırnaq(double quote) bəzən addslashes();funksiyası ilə slash qoyaraq (/) qarşısının alınmasıdır. Bəli bu addslashes(); funksiyası ilə siz double quote ilə attack olunan zaman qorunur.Əgər bunlardan heç biri olmasa yəni necə deyim Heç 1 XSS keçirtmək olmasa sayta,yəni saytda bizim bildiyimiz XSS Tag-larıyla JavaScript əmrlərin işə sala bilməsək dediyim kimi bypass yolları var.Bu yolları buradan oxuya bilərsiniz :
XSS Bağlamaq üçün Alternativ yollar :
Function(Funksiyalar) :
1)addslashes();
2)htmlspecialchars();
3)htmlentities();
4)str_replace();
Bunlar Mənim bildiklərimdir.ve mənim qarşılaşdıqlarım arasında ən çox istifadə olunan security metodlarıda bunlardır. İndi sizlərə hamısın açıb göstərim.
Bunlar Mənim bildiklərimdir.ve mənim qarşılaşdıqlarım arasında ən çox istifadə olunan security metodlarıda bunlardır. İndi sizlərə hamısın açıb göstərim.
addslashes(); Funksiyası.
stripslashes(); funksiyasl ilə / slash-i aradan götürürlər. addslashes(); funksiyası ilə ” cüt dırnaq -ın yanına /(slash) qoyur.
htmlspecialchars(); Funksiyası.
Bununla isə biz GET methodunda istifadə edilən zərərli yazılımları qoruyuruq.
<?php$degisen = htmlspecialchars($_GET['af']);print $degisen ;?>
Misal olaraq belə.
htmlentities(); Funksiyası.
Bununla siz XSS-nin və HTML İnj-in qarşısın ala bilərsiniz məsələn :
<?php$
mesaj = “Site Hacked<script type=’text/javascript’>window.location = ‘http://www.deneme.com/’</script>”;$təmizlə = htmlentities($mesaj);echo $təmizlə;?>
Burda mesaj dəyişkənində yazılan sözləri diqqətlə oxuyur və içində XSS , HTML İnj görsə parse(içəri atmaq) edir amma input-a yollamır.
str_replace(); Funksiyası.
Bu funksiya 1 növ qeyd edilən sözləri URL-də əngəlləyir.
<?phpfunction xsssec($string) {$blacklist = array(“<script>”,”alert(“,”javascript”,”document.cookie”);$noxss = str_replace($blacklist,$string);echo $noxss;?>
Burda blacklist dəyişənində qeyd olunan sözlərə əngəl qoyur.
Bu Günlük bu qədər. Mən Avatar Fearless bu mövzunu yazdım. Ümüdvaram kömək etmiş olaram =).
0 Komment :
Yorum Gönder