Holigano
Forumdan Uzaklaştırıldı
- Katılım
- 2 May 2015
- Mesajlar
- 560
- Tepkime puanı
- 0
- Puanları
- 0
Bu dökümanı arşivimde buldum ve paylaşmıyacaktım ama olsun
Find Bug 0n PHP Systems
Author : Hestia' |
PHP sistemlerde ki zafiyetleri fonksiyonlar ve değişkenler üzerinden ele alacağız.
Bunu sınıflandırmamızın sebebi çoğu arkadaşımızın Php sistemlerde açık bulmakta ve tanımlamakta zorluk çekmesidir.
Bu dökümanın size bug bulma ve tanımlamada yardımcı olacaktır.
*//
Php sistemlerde ilk olarak kaynak kodlarında aşağıdaki değişkenlere göz atmalısınız:
Neden? Cevap:
Php sistemlerde var olan bu değişkenler Input table değişkenleridir.
Örneğin admin giriş sayfasında şifremizi girdiğimiz form alanı $_POST değişkeni ile değere atanıyorsa yapacağımız iş bu değişken alanını incelemek olmalıdır.
Çünkü kontrolsuz inputlar sistemde fiyet oluşturur.
Şimdi hepsini teker teker inceleyeceğiz.
__________________________________________________ _____________
[~] Cross Site Scripting Vulnerability (XSS)
XSS kullanıcı odaklı bir açıktır.
Browserler üzerinde; Web sayfalarına inject edilen javascript kodları ile kullanıcıya yönelik saldırı yapılır.
Günümüzde Website sahiplerinin bu açık hakkında bilgisizliği ve tüm tarayıcıların javascript desteği olması XSS açıklarının çok yaygın olduğunu anlamak için yeterlidir.
Peki nasıl meydana gelir?
Temel olarak HTML etiketlerinin(tag) kötüye kullanımına sonucu meydana gelir.
ÖRNEK:
Değişkenler hiç bir filtreye tabi değil.
Örnek atak modülü:
DEFANS
HTML etiketlerinin kötüye kullanımını engellemek gerekir.
Bunun için "htmlspecialchars" fonksiyonunu kullanmalıyız:
[~] SQL Injection Vulnerability
SQL Injection XSS açıklarının aksine server odaklı bir açıktır.
SQL Injection açıkları user inputlarının(kullanıcı girdilerinin) filtrelenmesinden meydana gelir.
Soracaksınız XSS de filtre eksikliğinden meydana gelmekte farkı ne? Cevap:
SQL Injection: Database ile data alış verişi yaptığımız alanların filtrelenmemesinden kaynaklanır.
XSS: WEB APPLICATION > USER > BROWSER > USER
SQL: WEB APPLICATION > USER > DATABASE > USER
şeklinde meydana gelir.
ÖRNEK:
id değikeni hiç bir filtremeye tabi değil.Bir üstten tırnak koysak database hata verecektir!
Örnek atak modülü:
EFANS
Burada SQL Injectionda kullanılan "+(artı)" ";(noktalı virgül)" terimleri yasaklayacağız.
Yukarda array kullanarak yasak terimleri dizi içine aldık ve id değerini bu terimlere göre yeniden tanımladık.
__________________________________________________ _____________
[~] Dynamic Evaluation Vulnerability
Php fonksiyonlarının yanlış kullanılması ile meydana gelen bir açık türüdür.
ÖRNEK
Kod:
Yukardaki fonksiyonun çağırılma şekline dikkat ediniz.
Örnek atak Modülümüz:
Find Bug 0n PHP Systems
Author : Hestia' |
PHP sistemlerde ki zafiyetleri fonksiyonlar ve değişkenler üzerinden ele alacağız.
Bunu sınıflandırmamızın sebebi çoğu arkadaşımızın Php sistemlerde açık bulmakta ve tanımlamakta zorluk çekmesidir.
Bu dökümanın size bug bulma ve tanımlamada yardımcı olacaktır.
*//
Php sistemlerde ilk olarak kaynak kodlarında aşağıdaki değişkenlere göz atmalısınız:
Kod:
$_SERVER
$_GET
$_POST
$_COOKIE
$_REQUEST
$_FILES
$_ENV
$_HTTP_COOKIE_VARS
$_HTTP_ENV_VARS
$_HTTP_GET_VARS
$_HTTP_POST_FILES
$_HTTP_POST_VARS
$_HTTP_SERVER_VARS
Neden? Cevap:
Php sistemlerde var olan bu değişkenler Input table değişkenleridir.
Örneğin admin giriş sayfasında şifremizi girdiğimiz form alanı $_POST değişkeni ile değere atanıyorsa yapacağımız iş bu değişken alanını incelemek olmalıdır.
Çünkü kontrolsuz inputlar sistemde fiyet oluşturur.
Şimdi hepsini teker teker inceleyeceğiz.
__________________________________________________ _____________
[~] Cross Site Scripting Vulnerability (XSS)
XSS kullanıcı odaklı bir açıktır.
Browserler üzerinde; Web sayfalarına inject edilen javascript kodları ile kullanıcıya yönelik saldırı yapılır.
Günümüzde Website sahiplerinin bu açık hakkında bilgisizliği ve tüm tarayıcıların javascript desteği olması XSS açıklarının çok yaygın olduğunu anlamak için yeterlidir.
Peki nasıl meydana gelir?
Temel olarak HTML etiketlerinin(tag) kötüye kullanımına sonucu meydana gelir.
ÖRNEK:
Kod:
<?php
$xss = $_GET[’alco’];
print $xss ;
?>
Değişkenler hiç bir filtreye tabi değil.
Örnek atak modülü:
Kod:
#http://127.0.0.1:80/index.php?alco="><scr ipt>alert(********.cookie);</script>
DEFANS
HTML etiketlerinin kötüye kullanımını engellemek gerekir.
Bunun için "htmlspecialchars" fonksiyonunu kullanmalıyız:
Kod:
<?php
$xss = $_GET[’alco’];
print htmlspecialchars($xss) ;
?>
[~] SQL Injection Vulnerability
SQL Injection XSS açıklarının aksine server odaklı bir açıktır.
SQL Injection açıkları user inputlarının(kullanıcı girdilerinin) filtrelenmesinden meydana gelir.
Soracaksınız XSS de filtre eksikliğinden meydana gelmekte farkı ne? Cevap:
SQL Injection: Database ile data alış verişi yaptığımız alanların filtrelenmemesinden kaynaklanır.
XSS: WEB APPLICATION > USER > BROWSER > USER
SQL: WEB APPLICATION > USER > DATABASE > USER
şeklinde meydana gelir.
ÖRNEK:
Kod:
<?php
$id= $_GET[’id’];
....
$query= "SELECT * FROM users WHERE id= ’ “ .$id." ;"
...
?>
id değikeni hiç bir filtremeye tabi değil.Bir üstten tırnak koysak database hata verecektir!
Örnek atak modülü:
Kod:
#http://127.0.0.1:80/index.php?id=1+UNION+SELECT+1,@@version,3,4,5+from+users/*
EFANS
Burada SQL Injectionda kullanılan "+(artı)" ";(noktalı virgül)" terimleri yasaklayacağız.
Kod:
<?php
$id= $_GET[’id’];
....
$yasak = array("\\\\\\\\"", "\\\\\\\\\\\\\\\\", "/", "*", "’", "=", "-
", "#", ";", "<", ">", "+", "%");
$id = str_replace($yasak, "", $id);
$query= "SELECT * FROM users WHERE id= ’ “ .$id." ;"
...
?>
Yukarda array kullanarak yasak terimleri dizi içine aldık ve id değerini bu terimlere göre yeniden tanımladık.
__________________________________________________ _____________
[~] Dynamic Evaluation Vulnerability
Php fonksiyonlarının yanlış kullanılması ile meydana gelen bir açık türüdür.
ÖRNEK
Kod:
Kod:
<?php
$fonksiyon = $_GET[’fonksiyon’];
$fonksiyon();
?>
Örnek atak Modülümüz:
Kod:
#http://127.0.0.1:80/index.php?fonksiyon=phpinfo