THT DUYURU

Web & Server Güvenliği Doğru web ve veritabanı sunucusu güvenliği sağlanmadan, bilgisayar korsanları hassas verilerinize erişebilir. Web, Sunucu ve veritabanı güvenliğini nasıl sağlayacağınızı buradan öğrenebilirsiniz.

chat
Seçenekler

Sql İnjection Açıkları / Bypass Engelleme

Gringox - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
05/2016
Nereden:
grin.py
Mesajlar:
41
Konular:
11
Teşekkür (Etti):
0
Teşekkür (Aldı):
7
Ticaret:
(0) %
07-05-2017 13:04
#1
Sql İnjection Açıkları / Bypass Engelleme
Merhaba arkadaşlar bu yazımızda php türlerinde Sql injection nasıl kapatılır onu öğreneceğiz.

'=' 'or' Ve Diğer Panel Bypasslar için

Kod:
PHP:
<?php

$ourLogin = "admin";
$ourPassword = "tht";

session_start();

if ($_SESSION['login']!=$ourLogin && $_SESSION['password']!=$ourPassword) { 


if ($_POST['login']==$ourLogin && $_POST['password']==$ourPassword) {


$_SESSION['login'] = $_POST['login'];
$_SESSION['password'] = $_POST['password'];
header("********: index.php");


}
else {


echo "
<form action=index.php method=post>

K. Adi :<br>
<input type=text name=login value=''><br>
Gizlilik :<br>
<input type=password name=password value=''><br>

<input type=submit value=' Tamam '>


</form>
";

exit;

}
Bu sayede admin giriş panelini filtrelemiş, gereksiz karakterleri devre dışı bırakmış olduk örnek formdur kendinize göre düzenleyiniz..

Sql Injection Basit Ataklar ( ' -- 'a - * - 9999 vb.) İçin..

Fixlenmiş php kodları aşağıdaki gibidir, sql tehlikesi olan tüm sayfalara include ediniz. Tavsiyem sorgulama & form içeren tüm sayfalardır..

Kod:
PHP:

function clearMethod($mVar){
    if(is_array($mVar)){
        foreach($mVar as $gVal => $gVar){
            if(!is_array($gVar)){
                    $mVar[$gVal] = htmlspecialchars(strip_tags(urldecode(mysql_escape_string(addslashes(stripslashes(stripslashes(trim(htmlspecialchars_decode($gVar)))))))));  // -> Dizi olmadığını fark edip temizledik.
            }else{
                    $mVar[$gVal] = clearMethod($gVar);
            }
        }
    }else{
        $mVar = htmlspecialchars(strip_tags(urldecode(mysql_escape_string(addslashes(stripslashes(stripslashes(trim(htmlspecialchars_decode($mVar))))))))); // -> Dizi olmadığını fark edip temizledik.
    }
    return $mVar;
    

}

// Kullanım

$_GET = clearMethod($_GET); // -> GET verilerini temizledik.
$_POST = clearMethod($_POST); // -> POST verilerini temizledik.
$_SESSION = clearMethod($_SESSION); // -> SESSION verilerini temizledik.
$_COOKIE = clearMethod($_COOKIE); // -> COOKIE verilerini temizledik.
?>
Basit ataklar bu yönde engellemiş olduk..

Şimdi ise bypass engelleme nasıl yapılır?

Mysql_escape_string filtreleme işlemlerini duymuşsunuzdur. Bilmeyenler googleden araştırıp öğrenebilir.. String filtreleme işlemleri bittikten sonra Sql üzerindeki kullanıcı yetkilerini gözden geçiriniz, gereksiz gördüğünüz yetkileri sınırlandırın ve ardından aşağıdaki komutlarla devam edelim..

Kod:
PHP:

if(!function_exists('stripos')) {

function stripos_clone($haystack, $needle, $offset=0) {
    return strpos(strtoupper($haystack), strtoupper($needle), $offset);
}

} else {

function stripos_clone($haystack, $needle, $offset=0) {
    return stripos($haystack, $needle, $offset=0);
}

}

if(isset($_SERVER['QUERY_STRING'])) {

$queryString = strtolower($_SERVER['QUERY_STRING']);

if (stripos_clone($queryString,'%select%20') OR stripos_clone($queryString,'%20union%20') OR stripos_clone($queryString,'union/*') OR stripos_clone($queryString,'c2nyaxb0') OR stripos_clone($queryString,'+union+') OR stripos_clone($queryString,'http://') OR stripos_clone($queryString,'https://') OR (stripos_clone($queryString,'cmd=') AND !stripos_clone($queryString,'&cmd')) OR (stripos_clone($queryString,'exec') AND !stripos_clone($queryString,'execu')) OR stripos_clone($queryString,'union') OR stripos_clone($queryString,'concat') OR stripos_clone($queryString,'ftp://')) {
      
echo base64_decode("c2lrdGlyZ2l0IGFtaW5hIGtvZHVtdSBsYW1lciBpYm5lc2k=");
exit;

}
}
Gerekli gördüğünüz yerlere include ediniz. Ve mutlaka POST'ları strip_tags 'den geçiriniz..

İyi forumlar..
'Unnamed Teşekkür etti.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler