Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Безопасность (https://forum.antichat.xyz/forumdisplay.php?f=41)
-   -   На сколько надежна такая защита? (https://forum.antichat.xyz/showthread.php?t=103888)

SKYDOS 30.01.2009 23:07

На сколько надежна такая защита?
 
привет всем
тут я новенький. ) с кем не знаком с радостью познакомлюсь.

вопрос:
популярным типом взлома сайтов являются 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

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

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

herfleisch 30.01.2009 23:37

Думаю, что это далеко не новый метод...

ShAnKaR 30.01.2009 23:46

для этого существует mod_security http://www.modsecurity.org/

SKYDOS 30.01.2009 23:51

Цитата:

Сообщение от ShAnKaR
для этого существует mod_security http://www.modsecurity.org/

мод то существует, но какой процент им пользуется?

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

AFoST 31.01.2009 00:35

например
$trusted = preg_replace('/union/' , '' , $_GET[id]);
можно обойти
1)index.php?id=uNiOn

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

ShAnKaR 31.01.2009 00:53

http://forum.antichat.ru/threadnav30641-1-10.html

SKYDOS 31.01.2009 00:58

Цитата:

Сообщение от AFoST
например
$trusted = preg_replace('/union/' , '' , $_GET[id]);
можно обойти
1)index.php?id=uNiOn

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

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

SKYDOS 31.01.2009 01:02

Цитата:

Сообщение от ShAnKaR
http://forum.antichat.ru/threadnav30641-1-10.html

спасибо, но я ознакомился с этой темой из более лучшего источника:
http://www.phpfaq.ru/slashes

ShAnKaR 31.01.2009 01:05

ну а зачем тогда регулярные выражения?

Jokester 31.01.2009 01:07

Цитата:

Сообщение от SKYDOS
спасибо, но я ознакомился с этой темой из более лучшего источника:
http://www.phpfaq.ru/slashes

Ну а зачем тогда, уважаемый, вы забиваете себе и нам голову какими-то волшебными (читай ненужными) регулярками и фильтрами. Ничего лучше придумывать не нужно, потому, что это и так отлично работает

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


Время: 18:43