Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Анализатор SQL-инекций
rulestyle  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 2
Пользователь №: 42353
На форуме: 11 месяцев
Карма:




Добрый день друзья! помогите я не гуру в пхп но ваша помощь очень нужна! помогите мне решить 3 задачи, код готов но его надо подкорректировать! Всех с праздниками!

1. Надо оптимизировать код. Проверить на наличие ошибок!
2. Нужно проверить на использование в этом коде SQL-инекций
3. подключаю данный код через .htaccess
4. Внедрить доп код для определения прокси, код есть но как его внедрить немогу понять

Как работает данный файл:
При использование инекции он отправляет данные о взломе на e-mail + записывает IP в файл и запрещает доступ к сайту беря ip из файла.


<?php
$log_file="/home/ban_list.log";
// Получаем IP из лога
$ban = file($log_file);
// Получаем IP посетителя
$banuser = getenv("REMOTE_ADDR")."\n";

if (in_array($banuser, $ban)) {

$date = date('d-m-Y H:i:s');

/* Ваш адрес и тема сообщения */
$name = "Hacked";
$email = "hacked@sitename.ru";
$address = "info@sitename.ru";
$sub = "Взлом ".$_SERVER['HTTP_HOST']."";
$date = date('d-m-Y H:i:s');

/* Формат письма */
$mes = "Повтор входа: \r\n Сайт: ".$_SERVER['HTTP_HOST']." \r\n IP адрес: ".$_SERVER['REMOTE_ADDR']."";

/* Отправляем сообщение, используя mail() функцию */
$from = "From: $name <$email> \r\n Reply-To: $email \r\n";

if (mail($address, $sub, $mes, $from)) {
header('Refresh: 10; URL=http://www.google.com');
//echo 'Письмо отправлено';
} else {
header('Refresh: 10; URL=http://www.google.com');
//echo 'Письмо не отправлено';
}

die("Denied");

}

/* Бан */


//$patt = "~\<\?~i";

$patt = "~\<\?php[ a-zA-Z0-9]{5}";

if (is_array($_FILES)) {

foreach($_FILES as $anystring=>$file_data) {

if (preg_match($patt,file_get_contents($file_data['tmp_name']))) {

/* Ваш адрес и тема сообщения */
$name = "Hacked";
$email = "hacked@sitename.ru";
$address = "info@sitename.ru";
$sub = "Взлом ".$_SERVER['HTTP_HOST']."";
$date = date('d-m-Y H:i:s');

/* Формат письма */
$mes = "Идет попатка взлома #3: \r\n Сайт: ".$_SERVER['HTTP_HOST']." \r\n IP адрес: ".$_SERVER['REMOTE_ADDR']."";

/* Отправляем сообщение, используя mail() функцию */
$from = "From: $name <$email> \r\n Reply-To: $email \r\n";

if (mail($address, $sub, $mes, $from)) {
header('Refresh: 30; URL=http://www.sitename.ru');
//echo 'Письмо отправлено';
} else {
header('Refresh: 30; URL=http://www.sitename.ru');
//echo 'Письмо не отправлено';
}

$log_file="/home/ban_list.log";

// Получаем IP из лога
$ips = file($log_file);

// Получаем IP посетителя
$ip = getenv("REMOTE_ADDR")."\n";

if ( !in_array($ip, $ips) ) {
// IP нет в логе, добавляем
$ips[] = $ip;
}

$f=fopen($log_file,"wb");
fputs($f, implode("", $ips));
fclose($f);

die("Denied");

}
}
}


$patt = "~\/\.\.\/\.\.\/\.\.\/|{0-9a-zA-Z}[80]|eval[^\(]*\(|include[^\(]*\(|base64_decode[^\(]*\(|stripslashes[^\(]*\(|strip_tags[^\(]*\(|fopen[^\(]*\(|chmod[^\(]*\(|chown[^\(]*\(|chgrp[^\(]*\(|unlink[^\(]*\(|unset[^\(]*\(|fgetc[^\(]*\(|fgets[^\(]*\(|file_get_contents[^\(]*\(|file_put_contents[^\(]*\(|fwrite[^\(]*\(|move_uploaded_file[^\(]*\(|is_uploaded_file[^\(]*\(|rmdir[^\(]*\(|fromCharCode[^\(]*\(|tmpfile[^\(]*\(|tempnam[^\(]*\(|phpinfo[^\(]*\(|basename[^\(]*\(|curl_init[^\(]*\(|socket_create[^\(]*\(|popen[^\(]*\(|exec[^\(]*\(|system[^\(]*\(|passthru[^\(]*\(|proc_open[^\(]*\(|gzuncompress[^\(]*\(|shell_exec[^\(]*\(|delete from|insert into~i";

foreach ($_REQUEST as $v1x1) {

prfilter_x1($v1x1,$patt);

}

function prfilter_x1($v1x1,$patt) {

ob_start();

if (is_array($v1x1)) {

foreach ($v1x1 as $vx) {

prfilter_x1($vx,$patt);

}
}


else {

if (preg_match($patt, $v1x1) || preg_match($patt, stripslashes($v1x1))) {

/* Ваш адрес и тема сообщения */
$name = "Hacked";
$email = "hacked@sitename.ru";
$address = "info@sitename.ru";
$sub = "Взлом ".$_SERVER['HTTP_HOST']."";
$date = date('d-m-Y H:i:s');

/* Формат письма */
$mes = "Идет попатка взлома #1: \r\n Сайт: ".$_SERVER['HTTP_HOST']." \r\n IP адрес: ".$_SERVER['REMOTE_ADDR']."";

/* Отправляем сообщение, используя mail() функцию */
$from = "From: $name <$email> \r\n Reply-To: $email \r\n";

if (mail($address, $sub, $mes, $from)) {
header('Refresh: 30; URL=http://www.sitename.ru');
//echo 'Письмо отправлено';
} else {
header('Refresh: 30; URL=http://www.sitename.ru');
//echo 'Письмо не отправлено';
}


$log_file="/home/ban_list.log";

// Получаем IP из лога
$ips = file($log_file);

// Получаем IP посетителя
$ip = getenv("REMOTE_ADDR")."\n";

if ( !in_array($ip, $ips) ) {
// IP нет в логе, добавляем
$ips[] = $ip;
}

$f=fopen($log_file,"wb");
fputs($f, implode("", $ips));
fclose($f);


die("Denied");

}

if (preg_match($patt, base64_decode($v1x1) ) || preg_match($patt, stripslashes(base64_decode($v1x1)))) {


/* Ваш адрес и тема сообщения */
$name = "Hacked";
$email = "hacked@sitename.ru";
$address = "info@sitename.ru";
$sub = "Взлом ".$_SERVER['HTTP_HOST']."";
$date = date('d-m-Y H:i:s');

/* Формат письма */
$mes = "Идет попатка взлома #2: \r\n Сайт: ".$_SERVER['HTTP_HOST']." \r\n IP адрес: ".$_SERVER['REMOTE_ADDR']."";

/* Отправляем сообщение, используя mail() функцию */
$from = "From: $name <$email> \r\n Reply-To: $email \r\n";

if (mail($address, $sub, $mes, $from)) {
header('Refresh: 30; URL=http://www.sitename.ru');
//echo 'Письмо отправлено';
} else {
header('Refresh: 30; URL=http://www.sitename.ru');
//echo 'Письмо не отправлено';
}


$log_file="/home/ban_list.log";

// Получаем IP из лога
$ips = file($log_file);

// Получаем IP посетителя
$ip = getenv("REMOTE_ADDR")."\n";

if ( !in_array($ip, $ips) ) {
// IP нет в логе, добавляем
$ips[] = $ip;
}

$f=fopen($log_file,"wb");
fputs($f, implode("", $ips));
fclose($f);


die("Denied");

}

ob_end_clean();

}

}




?>




код который надо внедрить для определения прокси


function getRealIpAddr() {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) // Определяем IP
{ $ip=$_SERVER['HTTP_CLIENT_IP']; }
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) // Если IP идёт через прокси
{ $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; }
else { $ip=$_SERVER['REMOTE_ADDR']; }
return $ip;
}





жду ваших ответов! может кто поможет оптимизировать код чтобы не дублировать все это добро или через функции как то переписать я просто далек от этого! спасибо!

Это сообщение отредактировал rulestyle - 9.01.2016 - 14:45
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11788
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 15 дней
Карма: 429

Трезвый :
7 лет, 3 месяца, 15 дней


все твои хотелки денег стоят, вряд ли кто-то бесплатно будет решать эти задачи


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
casper - gg  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Пользователь
Сообщений: 216
Пользователь №: 42190
На форуме: 1 год, 4 дня
Карма: 10




Цитата (rulestyle @ 9.01.2016 - 14:42)
При использование инекции он отправляет данные о взломе на e-mail + записывает IP в файл и запрещает доступ к сайту беря ip из файла.

??? а как разграничить инъекцию от не инъекции???

Цитата (Invis1ble @ 9.01.2016 - 15:16)
все твои хотелки денег стоят, вряд ли кто-то бесплатно будет решать эти задачи

ну да, чего уж там, для этого то и знания что б не бесплатно другим помогать
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
rulestyle  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 2
Пользователь №: 42353
На форуме: 11 месяцев
Карма:




уже все помогли на другом форуме всем спасибо! и бесплатно! user posted image

Это сообщение отредактировал rulestyle - 9.01.2016 - 15:58
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
casper - gg  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Пользователь
Сообщений: 216
Пользователь №: 42190
На форуме: 1 год, 4 дня
Карма: 10




этот форум лучше! тут за бесплатное не берутся, потому что это не интересно и очень скучно user posted image
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22694
Пользователь №: 20039
На форуме: 7 лет, 2 дня
Карма: 599




rulestyle
Так часто говорят, когда не получают желаемого. При этом не факт, что на другом форуме помогли.
Кроме этого где доказательства, что инъекций не осталось? Ты можешь на 100% гарантировать это? Где ты видел, чтобы сантехник вечерами ходил и бесплатно ремонтировал чужие унитазы? Где ты видел, чтобы пекарь вечерами ходил по квартирам и пёк хлеб неизвестным людям? Мне продолжать, или логика про абсолютно все профессии очевидная?
То, что тебе помогли говорит о том, что над задачей работал достаточно зелёный человек, а его познания в программировании крайне малы.


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса