ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости > Форумы
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Анти ДДОС
  #1  
Старый 21.11.2008, 00:51
Аватар для Dimo4ka14
Dimo4ka14
Постоянный
Регистрация: 23.12.2005
Сообщений: 363
Провел на форуме:
1024832

Репутация: 233
По умолчанию Анти ДДОС

Принцип действия я думаю, понятен, вот сам код:

К примеру, создадим каталог anti_ddos и кидаем все скрипты туда:

index.php (модуль обнаружения DDOS атаки):

PHP код:
<?php

$ad_ddos_query
=10// количество запросов в секунду для обнаружения DDOS атаки
$ad_check_file='check.txt'// файл для записи текущего состояния во время мониторинга
$ad_temp_file='all_ip.txt'// временный файл
$ad_black_file='black_ip.txt'// будут заносится ip машин зомби
$ad_white_file='white_ip.txt'// заносятся ip посетителей
$ad_dir='anti_ddos'// каталог со скриптами
$ad_num_query=0// текущее количество запросов в секунду из файла $check_file
$ad_sec_query=0// секунда из файла $check_file
$ad_end_defense=0// время окончание защиты из файла $check_file
$ad_sec=date("s"); // текущая секунда
$ad_date=date("mdHis"); // текущее время
$ad_defense_time=10000// при обнаружении ddos атаки время в секундах на которое прекращается мониторинг



if(!file_exists("{$ad_dir}/{$ad_check_file}") or !file_exists("{$ad_dir}/{$ad_temp_file}") or !file_exists("{$ad_dir}/{$ad_black_file}") or !file_exists("{$ad_dir}/{$ad_white_file}") or !file_exists("{$ad_dir}/anti_ddos.php")){
die(
"Не хватает файлов.");
}

require(
"{$ad_dir}/{$ad_check_file}");

if (
$ad_end_defense and $ad_end_defense>$ad_date){
require(
"{$ad_dir}/anti_ddos.php");
} else {
if(
$ad_sec==$ad_sec_query){
$ad_num_query++;
} else {
$ad_num_query='1';
}

if (
$ad_num_query>=$ad_ddos_query){
$ad_file=fopen("{$ad_dir}/{$ad_check_file}","w");
$ad_end_defense=$ad_date+$ad_defense_time;
$ad_string='<?php $ad_end_defense='.$ad_end_defense.'; ?>';
fputs($ad_file,$ad_string);
fclose($ad_fp);
} else {
$ad_file=fopen("{$ad_dir}/{$ad_check_file}","w");
$ad_string='<?php $ad_num_query='.$ad_num_query.'; $ad_sec_query='.$ad_sec.'; ?>';
fputs($ad_file,$ad_string);
fclose($ad_fp);
}
}
?>



anti_ddos.php (модуль погашения DDOS атаки):
PHP код:
<?php
function getIP() {
if(
getenv("HTTP_CLIENT_IP") and preg_match("/^[0-9\.]*?[0-9\.]+$/is",getenv("HTTP_CLIENT_IP")) and getenv("HTTP_CLIENT_IP")!='127.0.0.1') {
$ip getenv("HTTP_CLIENT_IP");
} elseif(
getenv("HTTP_X_FORWARDED_FOR") and preg_match("/^[0-9\.]*?[0-9\.]+$/is",getenv("HTTP_X_FORWARDED_FOR")) and getenv("HTTP_X_FORWARDED_FOR")!='127.0.0.1') {
$ip getenv("HTTP_X_FORWARDED_FOR");
} else {
$ip getenv("REMOTE_ADDR");
}
return 
$ip;
}
$ad_ip=getIP();

$ad_source=file("{$ad_dir}/{$ad_black_file}");
$ad_source=explode(' ',$ad_source[0]);
if (
in_array($ad_ip,$ad_source)){die();}

$ad_source=file("{$ad_dir}/{$ad_white_file}");
$ad_source=explode(' ',$ad_source[0]);
if (!
in_array($ad_ip,$ad_source)){

$ad_source=file("{$ad_dir}/{$ad_temp_file}");
$ad_source=explode(' ',$ad_source[0]);
if (!
in_array($ad_ip,$ad_source)){
$ad_file=fopen("{$ad_dir}/{$ad_temp_file}","a+");
$ad_string=$ad_ip.' ';
fputs($ad_file,"$ad_string");
fclose($ad_fp);
?>

Сайт в данный момент подвергается DDOS атаке, если Вы не машина-зомби атакующая сайт нажмите на кнопку, иначе Ваш IP (<?=$ad_ip?>) будет заблокирован!!!
<form method="post">
<input type="submit" name="ad_white_ip" value="Кнопка">
</form>

<?php
die();
}
elseif (
$_POST['ad_white_ip']){
$ad_file=fopen("{$ad_dir}/{$ad_white_file}","a+");
$ad_string=$ad_ip.' ';
fputs($ad_file,"$ad_string");
fclose($ad_fp);
}
else {
$ad_file=fopen("{$ad_dir}/{$ad_black_file}","a+");
$ad_string=$ad_ip.' ';
fputs($ad_file,"$ad_string");
fclose($ad_fp);
die();
}
}
?>
Также для работы скрипта понадобятся 4 файла check.txt, white_ip.txt, black_ip.txt и all_ip.txt создаем их в этом же каталоге и на все ставим права 666 (чтение и запись).

Желательно также во время атаки списки IP адресов атакующих машин формирующихся в файле black_ip.txt переносить постепенно в файл .htaccess и блокировать их оттуда, тогда нагрузка еще значительно снизится.

Пример файла .htaccess
Код:
Deny from 11.11.11.11 22.22.22.22 и т.д. через пробел



Да чуть не забыл, для подключения скрипта, в начале каждого файла, который может быть подвергнут атаке добавляем строчку:
Код:
require("anti_ddos/index.php");




© ZiK
 
Ответить с цитированием

  #2  
Старый 21.11.2008, 00:54
Аватар для .Slip
.Slip
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме:
21768337

Репутация: 3486


По умолчанию

А ты не подумал что при ддосе бот сначало коннектится к серверу а уже только потом выполняется скрипт?
 
Ответить с цитированием

  #3  
Старый 21.11.2008, 00:58
Аватар для Chaak
Chaak
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме:
5321514

Репутация: 3313


Отправить сообщение для Chaak с помощью ICQ
По умолчанию

Это не анти ддос, это анти http-flood. Лучше уж php + ip tables
 
Ответить с цитированием

  #4  
Старый 21.11.2008, 07:49
Аватар для x3r0x
x3r0x
Новичок
Регистрация: 06.05.2007
Сообщений: 11
Провел на форуме:
65891

Репутация: 0
По умолчанию

Цитата:
в начале каждого файла, который может быть подвергнут атаке добавляем строчку:
к тому же, например, в картинку или в css/js/etc файлы уже не вставишь, хотя эти файлы тоже могут быть подвергнуты атаке
 
Ответить с цитированием

  #5  
Старый 21.11.2008, 08:47
Аватар для Doom123
Doom123
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме:
3941248

Репутация: 668


Отправить сообщение для Doom123 с помощью ICQ
По умолчанию

это полный бред ... Тебя от дддоса ничего не спасёт ибо еси это норм ддос то он атткует сервер а не скрипт ....
 
Ответить с цитированием

  #6  
Старый 21.11.2008, 09:37
Аватар для neval
neval
Moderator - Level 7
Регистрация: 13.12.2006
Сообщений: 531
Провел на форуме:
2127116

Репутация: 383


По умолчанию

А что ? Нормально...
Где написано что тушение пожара огнеметом это неправильно?
А почему не используется JavaScript ?
 
Ответить с цитированием

  #7  
Старый 30.11.2008, 14:48
Аватар для f®@me™
f®@me™
Новичок
Регистрация: 24.11.2008
Сообщений: 15
Провел на форуме:
284596

Репутация: 67
Отправить сообщение для f®@me™ с помощью ICQ
По умолчанию

Смешно =)
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопрос про анти ддос бамбят меня с 20к компов 9822 Безопасность 3 28.08.2008 00:11
Объявляется набор в группу АDDoS (Анти Ддос) -=lebed=- О Работе 0 31.07.2008 20:23



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ