Anti-armenia.ORG - Forumlar - Ban HTTP Flooders v2



Istifadəçi
    2012-04-23 01:29 GMT                 

BlackMinD



Pr0grammer
Mesaj Sayı : 1677
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   62  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : KARABAKH IS AZERBAIJAN!
Ölkə :
Məslək :
Yaş :
Mesaj :

Mövzunu Paylaş!


================== BAN HTTP FLOODERS V2 By AkaStep===================
Bu skriptin məqsədi saytınıza HTTP (port 80 ) üzrə GET / və POST
request based Flood edən skriptkiddielərin ("True hackerlərin" ) göndərdiyi requestlərin vahid zamana anına limitə əsasən ban etməkdir.
Bu skript Güclü və müxtəlif növlü DDOS attacklarda köməyinizə *gələ də bilər gəlməyə də bilər*.
Baxır bu attack-ın xassələrinə.
Əsas necə deyərlər burda *GOAL* skriptkiddielərin floodlarının qarşısını almaqdır.
Bu tipli floodun qarşısının alınması ən çox MYSQL serverə düşən nagruzkanı 0-a endirmək üçündür.(həmin ip -yə qarşı)

=================== İstifadə qaydası ====================
1)Arxivin *İÇƏRİSİNDƏ* nə görürsünüzsə hamısını banflooders diri də qarışıq olmaqla saytınıza.
(məsələn seditio üçün plugins/ dirinə upload edin)

banflooders/noflood.php faylını web applicationunuzun config.php faylında (məsələn seditioda /datas/config.php) faylında.
Aşağıdakı kimi include edin:

include '_relative_OR_ABSOLUTE_PATH/banflooders/noflood.php';//antiflood
if(!defined("DEBUGMSG")) die('Antiflood Include Edilmeyib!');

Həmin relative_OR_ABSOLUTE_PATH yazısını öz DOCUMENT ROOT-unuza dəyişdirin.
Məsələn
(/home/menimsaytim/public_html/banflooders/noflood.php kimi)

Yəqin ki, ümumiyyətlə DOCUMENT_ROOT nədir onu başa düşməyən də yuxarıdakı misalımdan başa düşdü nəyi deyirəm.

noflood.php faylını açıb oxuyun:
Əsas 2 variable var ki,özünüzə uyğun dəyişdirə bilərsiniz:

Birinci variable $limit adlanır.
*Məhz* bu variableyə verdiyiniz dəyər (value) neçədirsə
eyni İP adresdən vahid zaman düşən conenctlərin sayı bu limitə (dəyərə) bərabər olduqda yaxud ondan böyük olduqda
Avtomatik olaraq skript banned.txt faylına atır və die() funksiyası verməklə (skriptin işini dərhal dayandırmaqla) həmin flood edən İP adresdən
gələn requestləri qoymur MYSQL-serverə çatsın.
İkinci variable isə $usehtaccess adlanır.
Bu variable default olaraq 1 dəyərindədir.Məqsədi isə həmin ban edilmiş İP adresi (flooder ip adresi)
saytınlzdakı DOCUMENT_ROOT-daki .htaccess faylina

deny from hemin_BAN_EDILMIS_IP

və Forbidden vermiş olur həmin İP adresdən gələn request-ə.
Bu da əlavə tədbir kimi yaxşıdır.Çünki bu halda skriptkiddie gərək Apacheni down etsin.Bu da hər skriptkiddienin hər işi deyil çünki daha
çox "nagruzka" tələb olunur bunun üçün.

Skriptdə primitiv də olsa *CRON* yazmışam.Çünki skript öz düzgün işi zamanı hər bir İP adres üçün unikal _temp_ fayllar yaradır.
Bu fayllar requestləri *parse* etmək üçün vacibdir.
Bu CRON-nun da məqsədi 1 gündən 1 həmin _temp_ faylları təmizləməkdir.

Skriptin işləməsi üçün aşağıdakı Perm-lər lazımdır:
Skriptin öz dirinə banflooders/ + həmin dirdəki fayllara 775 banflooders/*
və DOCUMENT_ROOTdakı .htaccess faylına isə 644

Qeyd: banflooders/ dirinin içərisindəki .htaccess+index.html+noflood.php fayllarından *HEÇ BİRİNİ POZMAYIN*.
Bu həmin diri secure etmək üçündür(Hər ehtimal üçün)

Skriptdəki $msg variablesini özünüzə müvafiq dəyişdirə bilərsiniz.Bu flooder ban edildikdə ona göstərilən (1ci dəfə üçün)
mesajdır.
Amma Əməyə Hörmət edərək Müəllifin nick name-i də(AkaStep)pozmayın.

Belədə skriptin qurulması optimizəsi başı çıxan adam əlində 2x2 kimi asandır.

/AkaStep


http://pastebin.com/szVufWiK

Download: http://hidemyass.com/files/8jjbx/


Hər hansı təklif,improvement,bug,vuln =WELCOME!


Kod:
<?php
error_reporting('off');
/*
Ban HTTP flooders V2
By AkaStep 4 brothers.

*/
define("MYDIRFORINC",substr(str_ireplace('\\','/',htmlentities(str_ireplace('\\','/',__FILE__))),0,strrpos(htmlentities(__FILE__),DIRECTORY_SEPARATOR)+1));//el vurma
define("ROOTDIR",htmlentities($_SERVER['DOCUMENT_ROOT']).str_ireplace('\\','/',DIRECTORY_SEPARATOR). '.htaccess');//el vurma
define("DEBUGMSG","INCLUDE EDILIB");// bu debug ucundur pozma ve deyisdirme onu.
define("CRONFILE",'crontask.txt');





/*
1-saniyede maximum nece connect etse ban edek? default 7 connect
Problem yaratsa ve gunahsiz userleri ban etse bu reqemi bir qeder artir.

*/
$limit=7;//

// HTACCESS BLOK IP //
/* 1 yazsin htaccess-e.
0 yazmasin */
$usehtaccess=1;// default yazir .htaccess-e
// EOF HTACCESS BLOK IP //

/* EL VURMA HECNEYE ASAGIDA amma
$msg-i ureyin istediyin kimi deyisdire bilersen)
*/

/* EOF */

$msg='<html>
<head>
<style type="text/css">
body, a, a:hover {cursor: url(../images/cur116.cur), progress;}
body
{
background-color: black;
background-image: url(../images/backaground.jpg);
}
</style>' .
'<title>Banned For Flood!</title></head>
<body>' .
str_repeat('<ul>'. PHP_EOL,8) .
'<br>
<br>
<font color="red" size="15">' .PHP_EOL .
'Ban Edilmis&謑n!<br>
S&謑b&謑b:Flood Edirs&謑n!<br>
No Flood!<br>
CoDeD By /AkaStep.<br>
<br>'.PHP_EOL .
'</font>'. str_repeat('</ul>'. PHP_EOL,8) .
'</body>
</html>';




/* request kimden gelir onun IP adresini aliriq */
$ip=htmlspecialchars($_SERVER['REMOTE_ADDR']);
/* IP-nin formatini da yoxlayaq
Cunki ekser hostlarda spoof edildiyi tedqirde IP adres real ip evezine istenilen pox pusur gostere biler(spoof edilmisi)
*/
if(!filter_var($ip,FILTER_VALIDATE_IP,FILTER_FLAG_IPV4))
   {
    $error=1;
     }

if(isset($error))
      {
         unset($error);
         die($msg);
      }
   /* EOF IP CHECK */


$usehtaccess=(int)$usehtaccess;


/* Istesen deyisdir amma pozma bezi seyler bundan asilidir skriptde */
$saltedhash='Ka?ydE#hdZeBOopzo~[BFy_S11?9G43FH
<S3M+,\j[Reo#Av^+]1)>0k`=OVz5iZL=
,;&cAx/\3wMoj<Hks$wb(BU\KYqMCq_Am
O^uh~pn(,{N7]8l[6^~j^\2Y54N8?2;M?
|3(h>:}9C5-6#e(gxG?-W.vG{)VhGT:Ey
xla;nIaG1$iO7P\ij5>>-c710YFbPI=QL
n(kB#V4IC-JlO1zQcU=k9P}r;$g44d~s(
Bc$4ru/EBT[p/sUl3yR4NLPl`2e3[ZHcF
:aNgeGC+4FIUJTGXXH%kE-dlQnQpjp72]
PI7DycRj#{YRz@okPP2%4rAb)#9r;yb4$
jC@by(t5m[t&Kuv|)g/.6p\)zmnNHv5^u
eN8+^mNYUi^DjnC1YJn:KIVPh(,;QbB6c
B#{E6H=)KL:+MAt[fw4m~Y$--/7oa-7=Z
?%0kcc6`7L9i59pt@IW!]%W&}osx?|CaR
>$k^_k?F>^M\{dJ7^Bros\)g7fnYb<by1
@y`.2Hj/M?nz%r/exKD-`Ez65okP>McV!
M1|UwI@yraH&yy7b<!;k5,8{*;nc1rW?F
';



$logfile=MYDIRFORINC .substr(sha1(md5($ip) . sha1(md5($saltedhash))),0,20) . '_temp_' . md5(str_ireplace('.','_',$ip)) . '.txt';// muveqqeti faylmiz.Deyisdirme!
//die($logfile);
$banfile=MYDIRFORINC .'banned.txt';// ban edilmislerin siyahisi.


if(file_exists($banfile) && is_readable($banfile))
{

$yoxlayiriqbanedilibyayox=file($banfile,FILE_IGNORE_NEW_LINES);
/*
Ban siyahisinda 50 den yuxari yazi varsa resurslari az yemesi ucun log faylin
kopyasini yaradib kohnesini pozuruq.
*/
if(count($yoxlayiriqbanedilibyayox) >50)
{
    if(copy($banfile,MYDIRFORINC . 'bancopy_' .time() . '_.bak'))
    {
    @unlink($banfile);
    }
}
if(in_array($ip,$yoxlayiriqbanedilibyayox)) die($msg);
}


$time=time();


$handle=fopen($logfile,'a+');
fwrite($handle,$ip . '#' .$time . PHP_EOL);
fclose($handle);


$arr=file($logfile);
$newtime=NULL;
foreach($arr as $items)
{
$newip=substr($items,0,strpos($items,'#'));
if($ip===$newip)
{
$newtime.=str_ireplace($newip . '#','',$items);

if(substr_count($newtime,$time) >=$limit)
{


//echo $newtime . '<br>';
// Ban siyahisina atiriq //
$newbanhandle=fopen($banfile,'a+');
fwrite($newbanhandle,$ip . PHP_EOL);
fclose($newbanhandle);
// Ban siyahisina atdiq //


/* .htaccess faylina atiriq hemin IP-ni *deny from xxx.xxx.xxx.xxx* metodu ile*/
if($usehtaccess===1)
{
$htblockhandle=fopen(ROOTDIR,'a+');
/* internal server errorun qarsini almaq ucun 2 CRLF (PHP_EOL) buraxdim burda.
Xususile bu aiddir boyuk nagruzka altinda olanda Server .htaccess-e yazi sehv duse biler ve ehtimal boyuk olur log sehv yazilsin movqe baximindan.
Her ehtimal ucun 2CRLF buraxdim internal server errorun qarsisini almaq ucun.*/
fwrite($htblockhandle,PHP_EOL.'deny from ' . $ip .PHP_EOL);
fclose($htblockhandle);
}

/*EOF .htaccess -e atdiq IP adresi ve davam edirik */


/* indi ise isimizi dayandiririq */

unlink($logfile);
die($msg);

    }



}

unset($items);
}

/* EOF */
writemydate();


function writemydate()
{
if(!file_exists(MYDIRFORINC . CRONFILE))
{
    $startdate=date('j/n/Y');
    $cronhandle=fopen(MYDIRFORINC . CRONFILE,'w+');
    fwrite($cronhandle,$startdate);
    fclose($cronhandle);

}
}

checkcleanup();


function checkcleanup()

{

$enddate=date('j/n/Y');// hesablamaq ucun. Indiki ile kecmisi.
$croncontent=file_get_contents(MYDIRFORINC . CRONFILE);
//die($croncontent);
/* Cron faylimiza mudaxile olunubsa ve formati korlanibsa yenisini yaradiriq*/
if(!ctype_digit(str_ireplace('/','',$croncontent)))
{
//die(MYDIRFORINC .CRONFILE);

unlink(MYDIRFORINC .CRONFILE);
writemydate();
}
$startexplode=explode('/',$croncontent);

$startyear=@$startexplode[2]; // il

$startmonth=@$startexplode[1]; // ay

$startday=@$startexplode[0]; // gun

$strt = strtotime("{$startyear}/{$startmonth}/{$startday}");


/*   */
$enddateexplode=explode('/',$enddate);

$enddate = strtotime("{$enddateexplode[2]}/{$enddateexplode[1]}/{$enddateexplode[0]}");

/*   */
//die((round(abs($strt-$enddate)/60/60/24) + 1));


/* BU CRON 1 GUNDEN 1 TEKRARLANACAQ */
//die(MYDIRFORINC);

if((round(abs($strt-$enddate)/60/60/24) + 1) >1)// 1 gunden bir temizleyeceyik
{
//baslayiriq temizlemeye zir zibilden bu direktoriyani
$tempfiles=@scandir(MYDIRFORINC);

if(is_array($tempfiles) && count($tempfiles)!==0)
{
    $initialize=NULL;
    foreach($tempfiles as $pozbunlari)
    {
        $pozbunlari=basename($pozbunlari);
        if($pozbunlari==='.' || $pozbunlari==='..' || is_dir(MYDIRFORINC .$pozbunlari)) continue;
        if(is_file(MYDIRFORINC .$pozbunlari) && stristr(MYDIRFORINC .$pozbunlari,'_temp_') && strlen($pozbunlari) >60)
        {
            $initialize++;
            @unlink(MYDIRFORINC.$pozbunlari);
        }


    }
    unset($pozbunlari);
    if(isset($initialize) && $initialize>=1) @unlink(MYDIRFORINC . CRONFILE);unset($initialize);

}


}









}
/* EOF */



?>

Ana VƏTƏN!
Anti-armenia.ORG
    

Istifadəçi
    2012-04-23 01:48 GMT                 

substring



VIP
Mesaj Sayı : 73
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   3  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər :
Ölkə :
Məslək :
Yaş :
Mesaj :

Mövzunu Paylaş!


Respect bro Əllerinə sagliq

2 sualim var.
1) Bele başa düşdüm ki,skript istenilen cms-ə adaptasiya oluna bilər,yoxsa sadəcə seditio üçün?
2)755 də hər hansı problem yaranmaz ki?

Anti-armenia.ORG
    

Istifadəçi
    2012-04-23 02:04 GMT                 

BlackMinD



Pr0grammer
Mesaj Sayı : 1677
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   62  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : KARABAKH IS AZERBAIJAN!
Ölkə :
Məslək :
Yaş :
Mesaj :

Mövzunu Paylaş!


Təşəkkürlər bro.
1ci sual barədə sırf bu seditio üçün yazılıb bu onlineattack.ru saytındakı skriptdəki zaprosları blok etmək üçün.Amma bunu ip2sayt skriptim üçün də tətbiq etdim problemsiz olaraq işlədi.
İMHO bəli istifadə oluna bilər.
2ci sual barədə isə 755 məsələn freehostiada işləkdir.Elə də server varki 777 verməsəm yaza bilmir həmin dirə.777 dəki unsafedir.Nervidən götürüb pozmuşam skripti+həmin diri qarışıq.
644+
755
775 əksər vaxtlar bəs edir.
Əsas nəyə görə orda qeyd etmişəm 775 userlər baş beyin aparmasın işləmir ya işləyə bilmir deyə.
Server configurasiyanın rolu var çünki.
Əlavə də həmin dirə .htaccess atmışam deny from all hər ehtimal üçün access-in qarşısını almaq üçün.

Ana VƏTƏN!
Anti-armenia.ORG
    

Istifadəçi
    2012-04-23 02:10 GMT                 

substring



VIP
Mesaj Sayı : 73
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   3  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər :
Ölkə :
Məslək :
Yaş :
Mesaj :

Mövzunu Paylaş!


Aha anladım məsələni )) Amma bro,bunu Dle-üçün yazsaydın bilirsən aznetdən nə qədər dua edənin olacaqdı :xD (DLE-mania).Respect bro,bir daha təşəkkür

Anti-armenia.ORG
    

Istifadəçi
    2012-04-23 02:16 GMT                 

BlackMinD



Pr0grammer
Mesaj Sayı : 1677
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   62  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : KARABAKH IS AZERBAIJAN!
Ölkə :
Məslək :
Yaş :
Mesaj :

Mövzunu Paylaş!


Təşəkkürlər bir daha bro
Respect.

Ana VƏTƏN!
Anti-armenia.ORG
    

Istifadəçi
    2012-04-23 07:02 GMT                 

CwGhost



VIP
Mesaj Sayı : 160
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   4  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : Baku
Ölkə :
Məslək : CwGhost
Yaş :
Mesaj :

Mövzunu Paylaş!


təşəkkürlər

http://s017.radikal.ru/i404/1202/c6/a2947080a3c4.png
Anti-armenia.ORG
    

Istifadəçi
    2012-04-23 14:59 GMT                 

Ferid23



Admin
Mesaj Sayı : 1875
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   45  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : Anti-armenia.ORG
Ölkə :
Məslək : Programmer & Defacer
Yaş : 12
Mesaj :

Mövzunu Paylaş!


Təşəkkürlər! Hərzamanki kimi Super! Əllərinə sağlıq!

AZ Domaini İhbar Hattı (Azərbaycan saytlarında olan boşluqları bizə bildirin): http://anti-armenia.org/forums.php?m=posts&q=572
Qaydalar (Saytın qayda-qanunlarını oxuyaraq əməl edin)
Anti-armenia.ORG
    

Istifadəçi
    2012-04-23 15:13 GMT                 

LocaL



Gold
Mesaj Sayı : 141
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   2  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : Badu Kubə
Ölkə :
Məslək : ....
Yaş :
Mesaj :

Mövzunu Paylaş!


Təşəkkürlər qaqa. Sənin işlərinə valehəmdə

Çakıl taşlı yollar yordu beni, keşke yürüse yanımda bişr-i hafi...
Anti-armenia.ORG
    

Istifadəçi
    2012-04-24 19:58 GMT                 

BlackMinD



Pr0grammer
Mesaj Sayı : 1677
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   62  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : KARABAKH IS AZERBAIJAN!
Ölkə :
Məslək :
Yaş :
Mesaj :

Mövzunu Paylaş!


Kod:
192.168.0.1 - - [24/Apr/2012:21:08:47 +0400] "GET /learn/work/admin/indexmain.php?id=1335287327569&msg=online%20attack%20Official HTTP/1.1" 200 530
192.168.0.1 - - [24/Apr/2012:21:08:47 +0400] "GET /learn/work/admin/indexmain.php?id=1335287327569&msg=online%20attack%20Official HTTP/1.1" 200 530 "-" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0"
192.168.0.1 - - [24/Apr/2012:21:08:47 +0400] "GET /learn/work/admin/indexmain.php?id=1335287327418&msg=online%20attack%20Official HTTP/1.1" 200 530
192.168.0.1 - - [24/Apr/2012:21:08:47 +0400] "GET /learn/work/admin/indexmain.php?id=1335287327418&msg=online%20attack%20Official HTTP/1.1" 200 530 "-" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0"
192.168.0.1 - - [24/Apr/2012:21:08:47 +0400] "GET /learn/work/admin/indexmain.php?id=1335287327769&msg=online%20attack%20Official HTTP/1.1" 200 530
192.168.0.1 - - [24/Apr/2012:21:08:47 +0400] "GET /learn/work/admin/indexmain.php?id=1335287327769&msg=online%20attack%20Official HTTP/1.1" 200 530 "-" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0"
192.168.0.1 - - [24/Apr/2012:21:08:47 +0400] "GET /learn/work/admin/indexmain.php?id=1335287327868&msg=online%20attack%20Official HTTP/1.1" 200 530
192.168.0.1 - - [24/Apr/2012:21:08:47 +0400] "GET /learn/work/admin/indexmain.php?id=1335287327868&msg=online%20attack%20Official HTTP/1.1" 200 530 "-" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0"
192.168.0.1 - - [24/Apr/2012:21:08:48 +0400] "GET /learn/work/admin/indexmain.php?id=1335287327911&msg=online%20attack%20Official HTTP/1.1" 200 530
192.168.0.1 - - [24/Apr/2012:21:08:48 +0400] "GET /learn/work/admin/indexmain.php?id=1335287327911&msg=online%20attack%20Official HTTP/1.1" 200 530 "-" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0"
192.168.0.1 - - [24/Apr/2012:21:08:48 +0400] "GET /learn/work/admin/indexmain.php?id=1335287328086&msg=online%20attack%20Official HTTP/1.1" 200 530
192.168.0.1 - - [24/Apr/2012:21:08:48 +0400] "GET /learn/work/admin/indexmain.php?id=1335287328086&msg=online%20attack%20Official HTTP/1.1" 200 530 "-" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0"
192.168.0.1 - - [24/Apr/2012:21:08:48 +0400] "GET /learn/work/admin/indexmain.php?id=1335287328147&msg=online%20attack%20Official HTTP/1.1" 200 530
192.168.0.1 - - [24/Apr/2012:21:08:48 +0400] "GET /learn/work/admin/indexmain.php?id=1335287328147&msg=online%20attack%20Official HTTP/1.1" 200 530 "-" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0"
192.168.0.1 - - [24/Apr/2012:21:08:48 +0400] "GET /learn/work/admin/indexmain.php?id=1335287328266&msg=online%20attack%20Official HTTP/1.1" 200 530
192.168.0.1 - - [24/Apr/2012:21:08:48 +0400] "GET /learn/work/admin/indexmain.php?id=1335287328266&msg=online%20attack%20Official HTTP/1.1" 200 530 "-" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0"
192.168.0.1 - - [24/Apr/2012:21:08:48 +0400] "GET /learn/work/admin/indexmain.php?id=1335287328353&msg=online%20attack%20Official HTTP/1.1" 200 530
192.168.0.1 - - [24/Apr/2012:21:08:48 +0400] "GET /learn/work/admin/indexmain.php?id=1335287328353&msg=online%20attack%20Official HTTP/1.1" 200 530 "-" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0"
192.168.0.1 - - [24/Apr/2012:21:08:48 +0400] "GET /learn/work/admin/indexmain.php?id=1335287328403&msg=online%20attack%20Official HTTP/1.1" 200 530
192.168.0.1 - - [24/Apr/2012:21:08:48 +0400] "GET /learn/work/admin/indexmain.php?id=1335287328403&msg=online%20attack%20Official HTTP/1.1" 200 530 "-" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0"
192.168.0.1 - - [24/Apr/2012:21:08:48 +0400] "GET /learn/work/admin/indexmain.php?id=1335287327465&msg=online%20attack%20Official HTTP/1.1" 200 530
192.168.0.1 - - [24/Apr/2012:21:08:48 +0400] "GET /learn/work/admin/indexmain.php?id=1335287327465&msg=online%20attack%20Official HTTP/1.1" 200 530 "-" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0"
192.168.0.1 - - [24/Apr/2012:21:08:48 +0400] "GET /learn/work/admin/indexmain.php?id=1335287328488&msg=online%20attack%20Official HTTP/1.1" 200 530
192.168.0.1 - - [24/Apr/2012:21:08:48 +0400] "GET /learn/work/admin/indexmain.php?id=1335287328488&msg=online%20attack%20Official HTTP/1.1" 200 530 "-" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0"
192.168.0.1 - - [24/Apr/2012:21:08:48 +0400] "GET /learn/work/admin/indexmain.php?id=1335287328570&msg=online%20attack%20Official HTTP/1.1" 200 530
192.168.0.1 - - [24/Apr/2012:21:08:48 +0400] "GET /learn/work/admin/indexmain.php?id=1335287328570&msg=online%20attack%20Official HTTP/1.1" 200 530 "-" "Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0"




Axır ki,bu onlineattack skipti əlimə keçdi.Araşdırdım onu əvvəlcədən gəldiyim qənaət özünü doğrultdu.
Bu skript HTML+JS client side =>zaproslar generasiya edir.Yəni elə bilki həmin adam oturub saytda CTRL+R-i basıb saxlıyır saytda.
Beləliklə zapros vermiş olur hədəf sayta.
Eyni məntiqdir burda da.
Skriptdə standart fikir verin localhostdakı loglarıma
online%20attack%20Official
buna görə filtrasiya eləmək olar amma çox lame bir metod olmuş olar.Çünki attacker skriptdə onu dəyişdirə bilər çox asanlıqla.
Əsas açar an burda hər saniyəyə düşən requestin limitidir.Ən düzgün yol budur.
Limiti yuxarıdakı skriptimdə 5 və 7 verdim avtomatik bana uçdu attacker ip adresi.
Hesab edirəm verdiyim $limit valuesi düzgündür.Yəni 7 dəyərindədir.
Yenə də istəsəniz onu 5 vəya 6 vəya 7 value verə bilərsiniz.
Çox aşağı etməyin mənası olmur.Çox yuxarı etməyin də həmçinin.
Məsələn 2-3 versəniz böyük ehtimalla günahsız userləri ban edə bilər.
Çox da yuxarı versəniz həmin limiti ehtimal varki banflooders skripti malicious zaprosu "görməsin"

Elə normal limit bu dediklərimdir.
Digər tərəfdən bu flood-u edən adamı da tutmaq 2 vur 2 kimi asandır.Çünki zapros onun öz İP adresindən gəlir + brauzeri referer buraxır+user agenti düşür.
Apache loglardan tutmaq həmin adamı çox sadədir.
Linux OS-dəki
zgrep
grep

utilitaları vəssalam.

Kiminsə hər hansı təklifi yaxud daha gözəl metodları varsa + paylaşsa sevinərəm.

Ana VƏTƏN!
Anti-armenia.ORG
    

Istifadəçi
    2012-04-25 16:13 GMT                 

Bloody_eagle



İstifadəçi
Mesaj Sayı : 69
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   0  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər :
Ölkə :
Məslək : bloody_eagle
Yaş :
Mesaj :

Mövzunu Paylaş!


+1 rep

Ümidini itirmiş olanın başqa itirəcək heç bir şeyi yoxdur.
Anti-armenia.ORG
    

Istifadəçi
    2012-04-25 19:16 GMT                 

Mr.OpiL



Banned
Mesaj Sayı : 149
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   2  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər :
Ölkə :
Məslək :
Yaş : 25
Mesaj :

Mövzunu Paylaş!


Təşəkkürlər .. Super !

Anti-armenia.ORG
    

Istifadəçi
    2012-06-26 10:13 GMT                 

FleXDowN



İstifadəçi
Mesaj Sayı : 33
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   0  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər :
Ölkə :
Məslək :
Yaş :
Mesaj :

Mövzunu Paylaş!


Təbriklər bro!Respect! çox gozəl scriptdir.Yorulmadan hər sətrini oxudum)) Ama bir seyi basa dusməkdə çətinlik çəkdim.
Kod:
/* IP-nin formatini da yoxlayaq
Cunki ekser hostlarda spoof edildiyi tedqirde IP adres real ip evezine istenilen pox pusur gostere biler(spoof edilmisi)
*/
if(!filter_var($ip,FILTER_VALIDATE_IP,FILTER_FLAG_IPV4))
   {
    $error=1;
     }

if(isset($error))
      {
         unset($error);
         die($msg);
      }

Bax bu hissede əgər sən dediyin kimi lazimsiz pox pusurdursə IP yerinə filter eliyir.Bəs birdən Filter olunmasa nə olur? MEselen TOR ile olunsa.++ elə DDOS-erlər də var ki her "necəse" girisdən bir IP adresi dəyiwir.Duzdu belə proglar adi lamer flooderləri olmur adəten priv8 olur.Elə əsas tehlukə də odur.. Bəlkə də yaniliram bilmək olmaz ama yanilmiramsa belə vəziyyətdə nə etmək olar?

Anti-armenia.ORG
    

Istifadəçi
    2012-06-26 15:48 GMT                 

M4NY3T!K



Gold
Mesaj Sayı : 606
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   7  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : Naxçıvan
Ölkə :
Məslək :
Yaş :
Mesaj :

Mövzunu Paylaş!


Təşəkkürlər

http://s017.radikal.ru/i404/1202/c6/a2947080a3c4.png
Anti-armenia.ORG
    

Istifadəçi
    2012-06-27 11:27 GMT                 

BlackMinD



Pr0grammer
Mesaj Sayı : 1677
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   62  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : KARABAKH IS AZERBAIJAN!
Ölkə :
Məslək :
Yaş :
Mesaj :

Mövzunu Paylaş!


@FleXDowN
TOR olsa da valid ip adres (farmatı) olacaq burda.
Hemin yazdığım hissə başqa şeyin qarşısını.Daha açıq danışsam xüsusi http request göndərdikdə hansıkı İP adresin farmatı XXX.XXX.XXX.XXX deyil spoof edilmiş bir şey olduqda məsələn "PWNED" kimi bir şey orda validasiya etməsəm ip adresin farmatını htaccess-ə həmin malicious spoof edilmiş "İP" düşə bilər.
Normalda .htaccess-ə

deny from 195.12.65.12
kimi düşməlidirsə

belə düşə bilər:

deny from blab blab blab #CRLF
Redirect / http://pwned/

#CRLF yeni sətr deməkdir.
Bu da o deməkdir ki sayt pwned olacaq malicious redirect htaccess-ə düşür deyə.

PHP 4.2 dən sonra işləmir o metod injection qarşısı php qrup tərəfindən alınıb.Amma tədbir görmək qarşısını almaq üçün yenə də pis olmaz.Ona görə validation must have!



Təşəkkürlər hər birinizə

Ana VƏTƏN!
Anti-armenia.ORG
    

Istifadəçi
    2012-06-27 19:29 GMT                 

FleXDowN



İstifadəçi
Mesaj Sayı : 33
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   0  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər :
Ölkə :
Məslək :
Yaş :
Mesaj :

Mövzunu Paylaş!


Aha. başa düşdüm...

Anti-armenia.ORG
    

Istifadəçi
    2016-04-20 18:33 GMT                 

BLaCk_web



VIP
Mesaj Sayı : 23
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   1  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : Baku
Ölkə :
Məslək :
Yaş : 37
Mesaj :

Mövzunu Paylaş!


salam gozel movzu ucun cox saq ol
bes iptablesle block etmek ucun ne etmeli zehmet olmasa yazardiz serverin ozunden bir basa nese etmek olar mende bezilerinde var ama baxiram alinmir komek etmir

Anti-armenia.ORG
    

Istifadəçi
    2016-04-26 16:47 GMT                 

BlackMinD



Pr0grammer
Mesaj Sayı : 1677
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   62  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : KARABAKH IS AZERBAIJAN!
Ölkə :
Məslək :
Yaş :
Mesaj :

Mövzunu Paylaş!


Salam BLaCk_web.
Əslində bu skripti crona yazıb netstatı parse edib asanlıqla iptables -j DROP edə bilərsən müəyyən connect sayını keçən İP adresləri.
Məndə hal-hazırda 3-4 serverdə var.
Tapıb onu göndərərəm atarsan crona 1 dəqiqədən 1 netstatı parse edir.

Ana VƏTƏN!
Anti-armenia.ORG