برگزیده های پرشین تولز

حفاظت فارسي نوك(يا PHP-Nuke) بصورت كامل

iranvig

کاربر تازه وارد
تاریخ عضویت
22 می 2003
نوشته‌ها
433
لایک‌ها
6
سن
55
راستش من بعد از اينكه ديدم فارسي نوك توسط يه سري افراد هك ميشه و به راحتي ميشه اطلاعات اونو كاملا از ميون برد بفكر افتادم با يه روشي جلوي اين كار رو بگيرم . البته چون ممكنه در آينده هم از اينجور اشكالات پيش بياد بايد يه فكر اساسي ميكردم واسه همين يه برنامه ساختم كه اگه به سايت هايي كه نوكي هستن اضافه بشه ديگه بصورت كامل مشكل حل ميشه .
اين برنامه يه لاگ فايل تكست هستش اصلا بزار خود برنامه رو اينجا بزارم
اول از همه ميري توي فولدر db سايتت و به آخر فايل mysql.php درست قبل از علامت <? اين خط ها رو اضافه ميكني
PHP:
function writelog($query) {
	$filename = "iranvig.txt";
	if (is_writable($filename)) {
	   if (!$handle = fopen($filename, 'a')) {
			 exit;
	   }
	   $somecontent="$query \r\n";
	   if (!fwrite($handle, $somecontent)) {
		   exit;
	   }
	   
	   fclose($handle);
					   
	}
}
function checkaction($query) {
	if (ereg("INSERT",strtoupper($query)) or ereg("DELETE",strtoupper($query)) or ereg("UPDATE",strtoupper($query)))
	{return true;}
	else {return false;}
}
توجه كن من اين فايل رو اسمش رو گذاشتم iranvig.txt تو هرچي دوست داري بزار و نگران نباش بخصوص يه اسمي بزار كه قابل حدس زدن نباشه حتي ميتوني مسير هم بهش بدي . حالا ميري به قسمت تابع sql_query (حدودا توي خط 100 قرار داره) و اونو اينطوري تغيير ميدي
PHP:
	function sql_query($query = "", $transaction = FALSE)
	{
		// Remove any pre-existing queries
		unset($this->query_result);
		if($query != "")
                {
			if (checkaction($query)) {writelog($query);}
			$this->query_result = @mysql_query($query, $this->db_connect_id);

		}
		if($this->query_result)
		{
			unset($this->row[$this->query_result]);
			unset($this->rowset[$this->query_result]);
			return $this->query_result;
		}
		else
		{
			return ( $transaction == END_TRANSACTION ) ? true : false;
		}
	}
حالا ديگه لاگ فايلت آماده هست فقط بخاطر اينكه مشكلي پيش نياد قبل از اينكه فايل mysql.php رو بزاري تو سايتت برو و يه فايل (حداقل با سايز صفر و با نام فايل بالا يعني مثلا iranvig.txt ايجاد كن با پرميژن كامل رايت كردني يعني 777) بعدش فايل mysql.php رو توي سايت خودت تو محل مربوطه آپلود كن.
براي نمونه ميتوني فايل اصلي رو از توي لينك زير پيدا كني (به سايتم سر بزنيد.)
حالا به چه دردي ميخوره فرض كن همه فايلهات توسط هكر هك شده و از ميون رفته كافيه بري تو قسمت phpmyadmin و همه رو پاك پاك كني(البته بك آپ قبل از اين تغييرات رو بگير و اونو نگر دار) اول بك آپ رو برگردون و سپس فايل مربوطه كه تكست هست رو ورش دار و توي قسمت import بزن همه اطلاعات بلافاصله برميگرده به همين سادگي .
سوال داري بپرس.
اينم لينك برنامه :
http://www.iranvig.com/modules.php?name=News&file=article&sid=246
 
بالا