<?
//##############################################
// 防暴力攻擊網頁密碼的程式 created by wilson Date :2002/11/16
//mail : wilson@powen.adsldns.org
//##############################################
//檢查記錄檔i是否存在以判斷是否為同一人
//
$dir_path="/usr/local/apache/htdocs/crack_detect/tmp";
if(!(file_exists("$dir_path/ii")))
{
if(!($file = fopen("$dir_path/ii","w+")))
{
echo ("false");
}
else
{
fputs($file,"1");
fclose($file);
}
}
$time=time(); //取得時間
$ip = getenv ("REMOTE_ADDR"); //取得使用者ip
//
//判斷是否為拒絕存取名單中的人
//
if((file_exists("$dir_path/$ip")))
{
echo "
<body bgcolor=\"#000000\">
<br><br><br>
<p align=\"center\"><font color=\"#00FFFF\">禁止攻擊者存取網頁!!</font></p>
<p align=\"center\"><font color=\"#00FFFF\">攻擊者</font><font color=\"#00FFFF\">IP為 $ip</font></p>
<p align=\"center\"><font color=\"#00FFFF\">系統管理員已掌握您的相關資訊,請盡速與管理員聯絡!!</font></p>
<p align=\"center\"><font color=\"#00FFFF\">mail to:<a href=\"mailto:wilson@www.cju.edu.tw\"></a></font><a href=\"mailto:wilson@www.cju.edu.tw\"><font color=\"#00FFFF\">wilson@www.cju.edu.tw</font></a></p>
";
exit;
}
if(!($file = fopen("$dir_path/check_ip","r")))
{
echo ("false_1!!");
}
else
{
$ip_c=fread($file,15);
fclose($file);
}
if(!($file = fopen("$dir_path/check_time","r")))
{
echo ("false!!");
}
else
{
$time_c=fread($file,15);
fclose($file);
}
//
//如果使用者是同一人且存取時間差小於2秒就提出警告並計錄警告次數
//
$qqq= $time-$time_c; //計算系統上次被存取時間和現在時間差
if ($ip_c=$ip && $qqq < 2)
{
if(!($file = fopen("$dir_path/ii","r")))
{
echo ("false!!");
}
else
{
$i = fread($file,3);
}
if ($i > 5) //如果在兩秒內被警告5次以上就判定為攻擊行為
{
if(!($file = fopen("$dir_path/$ip","w+"))) //將最後存取系統的使用者資料更新
{
echo ("false");
}
else
{
fputs($file,"$ip");
fclose($file);
}
echo "
<body bgcolor=\"#000000\">
<p align=\"center\"><font color=\"#00FFFF\">嚴禁攻擊系統行為!!你的IP($ip)已被系統列入拒絕存取名單中,請和系統管理者聯絡!!</font></p>";
unlink("$dir_path/ii"); //重新記錄攻擊記錄
mail("wilson@www.cju.edu.tw","Web Was Atacked!!","The Ann in CJU WEB was atacked!!"); //通知管理者
exit;
}
else
$i=$i+1;
if(!($file = fopen("$dir_path/ii","w+")))
{
echo ("false");
}
else
{
fputs($file,"$i");
fclose($file);
}
echo "<CENTER><BR><BR><BR><BR><BR>嚴禁攻擊系統行為!!你的IP($ip)將被記錄下來!!<br>如果您是正當用戶請稍待2秒後再送出</CENTER>";
exit;
}
else
{
if(!($file = fopen("$dir_path/check_ip","w+"))) //將最後存取系統的使用者資料更新
{
echo ("false");
}
else
{
fputs($file,"$ip");
fclose($file);
unlink("$dir_path/ii");
}
if(!($file = fopen("$dir_path/check_time","w+")))
{
echo ("false");
}
else
{
fputs($file,"$time");
fclose($file);
}
}
?>