На сколько надежна такая защита?

Discussion in 'Безопасность и Анонимность' started by SKYDOS, 30 Jan 2009.

  1. SKYDOS

    SKYDOS New Member

    Joined:
    22 Jan 2009
    Messages:
    4
    Likes Received:
    0
    Reputations:
    -1
    привет всем
    тут я новенький. ) с кем не знаком с радостью познакомлюсь.

    вопрос:
    популярным типом взлома сайтов являются Sql Inj
    пишут для них моды вроде этих
    PHP:
    <?php  
    if(!defined('IN_TRACKER'))   die('Hacking attempt!'); 
    // Cracker Tracker Protection System // Created by: Christian Knerr - www.cback.de 
    // phpBB Users: Please use our complete phpBB2 Mod! 
    // Version: 2.0.0 // // License: GPL // // // Begin CrackerTracker StandAlone //  
    $cracktrack $_SERVER['QUERY_STRING']; 

    $wormprotector = array('chr(''chr=''chr%20''%20chr''wget%20''%20wget''wget(''cmd=''%20cmd''cmd%20''rush=''%20rush''rush%20''union%20''%20union''union(''union=''echr(''%20echr''echr%20''echr=''esystem(''esystem%20''cp%20''%20cp''cp(''mdir%20''%20mdir''mdir(''mcd%20''mrd%20''rm%20''%20mcd''%20mrd''%20rm''mcd(''mrd(''rm(''mcd=''mrd=''mv%20''rmdir%20''mv(''rmdir(''chmod(''chmod%20''%20chmod''chmod(''chmod=''chown%20''chgrp%20''chown(''chgrp(''locate%20''grep%20''locate(''grep(''diff%20''kill%20''kill(''killall''passwd%20''%20passwd''passwd(''telnet%20''vi(''vi%20''insert%20into''select%20''nigga(''%20nigga''nigga%20''fopen''fwrite''%20like''like%20''$_request''$_get''$request''$get''.system''HTTP_PHP''&aim''%20getenv''getenv%20''new_password''&icq','/etc/password','/etc/shadow''/etc/groups''/etc/gshadow''HTTP_USER_AGENT''HTTP_HOST''/bin/ps''wget%20''uname\x20-a''/usr/bin/id''/bin/echo''/bin/kill''/bin/''/chgrp''/chown''/usr/bin''g\+\+''bin/python''bin/tclsh''bin/nasm''perl%20''traceroute%20''ping%20''.pl''/usr/X11R6/bin/xterm''lsof%20''/bin/mail''.conf''motd%20''HTTP/1.''.inc.php''config.php''cgi-''.eml''file\://''window.open''<script>''javascript\://','img src''img%20src','.jsp','ftp.exe''xp_enumdsn''xp_availablemedia''xp_filelist''xp_cmdshell''nc.exe''.htpasswd''servlet''/etc/passwd''wwwacl''~root''~ftp''.js''.jsp''admin_''.history''bash_history''.bash_history''~nobody''server-info''server-status''reboot%20''halt%20''powerdown%20''/home/ftp''/home/www''secure_site, ok''chunked''org.apache''/servlet/con''<script''/robot.txt' ,'/perl' ,'mod_gzip_status''db_mysql.inc''.inc''select%20from''select from''drop%20''.system''getenv''http_''_php''php_''phpinfo()''<?php''?>''sql='); 

     
    $checkworm str_replace($wormprotector'*'$cracktrack); 
     if (
    $cracktrack != $checkworm) {     
       
    $cremotead $_SERVER['REMOTE_ADDR'];     
       
    $cuseragent $_SERVER['HTTP_USER_AGENT'];      
       die( 
    "<font color=red><strong>Oi blea ti menea pitaissea vzlomati? Ia tebe dam suka</strong></font> <br /><br /><b>Mi zapisali tvoi dannie, skoro priidut paru liudei i viibut tebea v jopu:</b><br />$cremotead - $cuseragent); }  
    ну вобщем я считаю, что это ерунда
    недавно пришла идейка по более надежной защите от скл инж, сводящей на нет всякие ущрения хацкеров.

    что если использовать рег выражения при проверке урл адреса?

    ну вот допустим что переменная value содержит данные введенные пользователем, пусть например в ней должно храниться что-то вроде аськиного номера.

    var newReg = new RegExp ("^[0-9]{1,10}$","i");

    попробуйте обмануть рег выражение. :D

    что думаете по-поводу вышеизложенного?

    спасибо всем за внимание, и если что не так приношу свои извинения.
     
  2. herfleisch

    herfleisch Elder - Старейшина

    Joined:
    7 Jan 2009
    Messages:
    578
    Likes Received:
    203
    Reputations:
    13
    Думаю, что это далеко не новый метод...
     
  3. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    для этого существует mod_security http://www.modsecurity.org/
     
  4. SKYDOS

    SKYDOS New Member

    Joined:
    22 Jan 2009
    Messages:
    4
    Likes Received:
    0
    Reputations:
    -1
    мод то существует, но какой процент им пользуется?

    да и тут уже другой вопрос, а реально ли вообще обойти рег выражения?
    если нет, то лишь используя их можно обеспечить уверенную защиту от скл инж.
     
  5. AFoST

    AFoST Elder - Старейшина

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    например
    $trusted = preg_replace('/union/' , '' , $_GET[id]);
    можно обойти
    1)index.php?id=uNiOn

    ставим независимость регистра
    $trusted = preg_replace('/union/i' , '' , $_GET[id]);
    все равно можно обойти
    2)index.php?id=ununionion
     
  6. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    /threadnav30641-1-10.html
     
    1 person likes this.
  7. SKYDOS

    SKYDOS New Member

    Joined:
    22 Jan 2009
    Messages:
    4
    Likes Received:
    0
    Reputations:
    -1
    ну вот вы написали ИД= чему-то там, по сути ИД - типа инт
    значит и проверка только на числа
    если же например будет такое (что-то вроде):
    index.php?action=union+delete+select&id=123
    то параметр action можно проверить из нескольких СУЩЕУСТВУЮЩИХ и ВОЗМОЖНЫХ вариантов типа:
    delete||add||post а все другие варианты заменять на один из них, или просто die;
     
  8. SKYDOS

    SKYDOS New Member

    Joined:
    22 Jan 2009
    Messages:
    4
    Likes Received:
    0
    Reputations:
    -1
    спасибо, но я ознакомился с этой темой из более лучшего источника:
    http://www.phpfaq.ru/slashes
     
  9. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    ну а зачем тогда регулярные выражения?
     
  10. Kakoytoxaker

    Kakoytoxaker Elder - Старейшина

    Joined:
    18 Feb 2008
    Messages:
    1,038
    Likes Received:
    1,139
    Reputations:
    350
    Ну а зачем тогда, уважаемый, вы забиваете себе и нам голову какими-то волшебными (читай ненужными) регулярками и фильтрами. Ничего лучше придумывать не нужно, потому, что это и так отлично работает

    //add ShAnKaR прочитал мои мысли :)
     
  11. AFoST

    AFoST Elder - Старейшина

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    если id типа int то легче сделать так
    $id=0;
    $id=intval($_GET[id]);

    =)
     
  12. AFoST

    AFoST Elder - Старейшина

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    запрети символы без которых скул невоможна, например
    "(" ")" "%20" "+" "/"
    наверное, еще что-то забыл.
    Перебирать все слова которые могут встречаться в cmd или скуле- это пздц))