Помогите разобратся где дыра?

12 3
viper5
На сайте с 06.02.2012
Offline
37
4734

Не знаю с чего начать и куда обратиться...Последняя надежда на этот форум так как другим не доверяю.

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

в одном файле было такое:

кусок кода

{ $arBalance = $payeer->getBalance(); $balancer = $arBalance["balance"]["RUB"]["DOSTUPNO"]; $balanceb = $arBalance["balance"]["BTC"]["DOSTUPNO"]; $balancee = $arBalance["balance"]["EUR"]["DOSTUPNO"]; $balanceu = $arBalance["balance"]["USD"]["DOSTUPNO"]; echo "

Как этот взлом называется SQL или PHP иньекция?

Через что взломали и какую защиту поставить?

Прошу поподробней так как не спец.)

Какие надо файлы предоставлю для проверки, заранее спасибо)

Бесплатные ключи для всех антивирусов (http://mir-antiviruses.ucoz.ru) Новый СЕО проект! (http://click-ads.ru)
Den73
На сайте с 26.06.2010
Offline
523
#1

а толку писать вам? вы же не спец.

нет универсальной инструкции, обратитесь к специалистам.

viper5
На сайте с 06.02.2012
Offline
37
#2

так можно просто дать код защиты от иньекций или это не поможет?

не спец но пхп файлы умею редактировать

где искать этих спецов?

K5
На сайте с 21.07.2010
Offline
209
#3
viper5:
где искать этих спецов?

целая ветка /ru/forum/webmasters-jobs/websites-servers-administration

аська 45два48499два записки на работе (http://memoryhigh.ru) помогу с сайтом, удалю вирусы, настрою впс -> отзывы ТУТ (/ru/forum/836248) и ТАМ (http://www.maultalk.com/topic140187.html) !!!всегда проверяйте данные людей, которые сами пишут вам в аську или скайп!!!
Den73
На сайте с 26.06.2010
Offline
523
#4

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

в соотв. разделе форума можно найти исполнителей.

можно ко мне обратиться, работаю от 2000р за сайт.

viper5
На сайте с 06.02.2012
Offline
37
#5
Den73:
что значит дать код, волшебного способа не существует, нужно делать аудит и выяснять причину, потому уже видно будет как исправить.

в соотв. разделе форума можно найти исполнителей.
можно ко мне обратиться, работаю от 2000р за сайт.

ну мне давали вот такую защиту но она не помогла

ведь сломали иньекцией а это надо ставить запрет на запросы get и post

<?

//Проверяем Пост и Гет на ненужные символы

$arrs=array('_GET', '_POST');

foreach($arrs as $arr_key => $arr_value){

if(is_array($$arr_value)){

foreach($$arr_value as $key => $value){

$nbz1=substr_count($value,'--');

$nbz2=substr_count($value,'/*');

$nbz3=substr_count($value,"'");

$nbz4=substr_count($value,'"');

if($nbz1>0 || $nbz2>0 || $nbz3>0 || $nbz4>0){

print '<div class="error">Вы используете недопустимые

символы в '.str_replace('_','',$arr_value).'-запросе!<br><a

href="javascript:window.history.back();">Назад</a></div>';

exit();

}

}

}

}

?>

p.s. за 2000 продают нулячий скрипт уже с защитой...смысл платить кому то за исправление?

я конечно собираюсь выучится на прогера но уже 30 лет и не знаю когда время будет...не те года когда свободного времени валом было)

Den73
На сайте с 26.06.2010
Offline
523
#6

viper5

приведенный вами способ костыль который к тому же не будет полноценно защищать, не в коем случае так делать не стоит.

2000р это копейки если посмотреть на расценки программистов :)

viper5
На сайте с 06.02.2012
Offline
37
#7
Den73:
viper5

приведенный вами способ костыль который к тому же не будет полноценно защищать, не в коем случае так делать не стоит.
2000р это копейки если посмотреть на расценки программистов :)

я конечно не знаю где вы живёте, но у нас на Донбассе под обстрелами это большие деньги!!!

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

я если выучусь то буду помогать бесплатно хотя бы по мелочи...почищу карму для себя)

если все прогеры такие жадные то подскажите (ПОЖАЛУЙСТА!!!) хоть вот этот код более менее лучше предыдущего

ещё не тестировал и не знаю

error_reporting(0); // вывод ошибок

if($_GET['menu']!='admin4ik' && 'support'){

function limpiarez($mensaje){

$mensaje = htmlspecialchars(trim($mensaje));

$mensaje = str_replace("'","&prime;",$mensaje);

$mensaje = str_replace(";","&brvbar;",$mensaje);

$mensaje = str_replace("$"," USD ",$mensaje);

$mensaje = str_replace("<","&lang;",$mensaje);

$mensaje = str_replace(">","&rang;",$mensaje);

$mensaje = str_replace('"',"&rdquo;",$mensaje);

$mensaje = str_replace("%27"," ",$mensaje);

$mensaje = str_replace("0x29"," ",$mensaje);

$mensaje = str_replace("&amp amp ","&",$mensaje);

return $mensaje;

}

foreach($HTTP_POST_VARS as $i => $value){$HTTP_POST_VARS[$i]=limpiarez($HTTP_POST_VARS[$i]);}

foreach($HTTP_GET_VARS as $i => $value){$HTTP_GET_VARS[$i]=limpiarez($HTTP_GET_VARS[$i]);}

foreach($_POST as $i => $value){$_POST[$i]=limpiarez($_POST[$i]);}

foreach($_GET as $i => $value){$_GET[$i]=limpiarez($_GET[$i]);}

foreach($_COOKIE as $i => $value){$_COOKIE[$i]=limpiarez($_COOKIE[$i]);}

foreach($HTTP_POST_VARS as $i => $value){$HTTP_POST_VARS[$i]=stripslashes($HTTP_POST_VARS[$i]);}

foreach($HTTP_GET_VARS as $i => $value){$HTTP_GET_VARS[$i]=stripslashes($HTTP_GET_VARS[$i]);}

foreach($_POST as $i => $value){$_POST[$i]=stripslashes($_POST[$i]);}

foreach($_GET as $i => $value){$_GET[$i]=stripslashes($_GET[$i]);}

foreach($_COOKIE as $i => $value){$_COOKIE[$i]=stripslashes($_COOKIE[$i]);}

################## Фильтрация всех POST и GET #######################################

function filter_sf(&$sf_array)

{

while (list ($X,$D) = each ($sf_array)):

$sf_array[$X] = limpiarez(mysql_escape_string(strip_tags(htmlspecialchars($D))));

endwhile;

}

filter_sf($_GET);

filter_sf($_POST);

#####################################################################################

function anti_sql()

{

$check = html_entity_decode( urldecode( $_SERVER['REQUEST_URI'] ) );

$check = str_replace( "", "/", $check );

$check = mysql_real_escape_string($str);

$check = trim($str);

$check = array("AND","UNION","SELECT","WHERE","INSERT","UPDATE","DELETE","OUTFILE","FROM","OR","SHUTDOWN","CHANGE","MODIFY","RENAME","RELOAD","ALTER","GRANT","DROP","CONCAT","cmd","exec");

$check = str_replace($check,"",$str);

if( $check )

{

if((strpos($check, '<')!==false) || (strpos($check, '>')!==false) || (strpos($check, '"')!==false) || (strpos($check,"'")!==false) || (strpos($check, '*')!==false) || (strpos($check, '(')!==false) || (strpos($check, ')')!==false) || (strpos($check, ' ')!==false) || (strpos($check, ' ')!==false) || (strpos($check, ' ')!==false) )

{

$prover = true;

}

if((strpos($check, 'src')!==false) || (strpos($check, 'img')!==false) || (strpos($check, 'OR')!==false) || (strpos($check, 'Image')!==false) || (strpos($check, 'script')!==false) || (strpos($check, 'javascript')!==false) || (strpos($check, 'language')!==false) || (strpos($check, 'document')!==false) || (strpos($check, 'cookie')!==false) || (strpos($check, 'gif')!==false) || (strpos($check, 'png')!==false) || (strpos($check, 'jpg')!==false) || (strpos($check, 'js')!==false) )

{

$prover = true;

}

}

if (isset($prover))

{

die( "Попытка атаки на сайт или введены запрещённые символы!" );

return false;

exit;

}

}

anti_sql();

}

P5
На сайте с 18.09.2010
Offline
69
#8

Извращение над кодом :(

Den73
На сайте с 26.06.2010
Offline
523
#9

viper5

на форуме есть тег PHP, не выкладывайте код в таком виде.

делать кашу и строить себе грабли как у вас нет смысла, от XSS достаточно htmlentities (при выводе), sql injection плейсхолдеры или mysql_real_escape_string.

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

pupseg
На сайте с 14.05.2010
Offline
364
#10

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

Качественная помощь в обслуживании серверов. (/ru/forum/661100) Бесплатных консультаций не даю, не помогаю, не обучаю. Минималка от 100$. Как пропатчить KDE-просьба не спрашивать. Есть форумы (http://linux.org.ru) и полезные сайты (http://www.opennet.ru/).
12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий