Jump to content


სიახლეებიდან ვირუსილი კოდების წაშლა DLE ძრავაზე


  • Please log in to reply
No replies to this topic

#1 tornike261

tornike261

    მომხმარებელი

  • მომხმარებლები
  • PipPip
  • 29 პოსტები:

Posted 30 September 2013 - 02:19 PM

მინდა შემოგთავაზოთ PHP კოდი რომელიც შლის სიახლეებიდან ვირუსულ კოდებს.

ვხსნით ბლოკნოტს და ბლოკნოტში ვწერთ შემდეგ კოდს:
<?
### Удаление фреймов и скриптов из новостей DLE
### Версия 1.3 (08.06.2011)
@set_time_limit(0);
@error_reporting(E_ALL ^ E_NOTICE);
define ("DATALIFEENGINE", "1");
define ( 'ROOT_DIR', dirname ( __FILE__ ) );
define ( 'ENGINE_DIR', ROOT_DIR . '/engine' );
require_once ROOT_DIR . '/engine/init.php';
# Что удалять
$delete = array('<[^<]*frame[^<]*>','<[^<]*script[^<]*>');
$limit = 100; // по 100 новостей за шаг.

$count = $db->super_query("SELECT COUNT(*) as count FROM `".PREFIX."_post`;");
echo '<title>Удаление вредоносного кода из новостей на DLE сайтах ver. 1.3</title>';

if ( !$_POST['submit'] ) {
echo '
<div align="center">
  <div align="center" style="width: 400px; border: 1px dotted black;">
   <form action="" method="POST">
    Будет обработано '.intval($count['count']).' новостей.<br />
    Начать с <input name="start" value="0" style="width: 100px;"><br />
    <input name="submit" value="Начать" type="submit" style="text-align: center;">
   </form>
  </div>
</div>
';
} else {

$_limit = ( isset($_POST['start']) and is_numeric($_POST['start']) and $_POST['start'] > 0 ) ? $_POST['start'] : 0;
$count['count'] = $count['count']-$_limit;

echo '
<script src="http://code.jquery.com/jquery-1.4.4.min.js" type="text/javascript"></script>
<style>
  #percent {
  position:relative;
  left:200px;
  top:15px;
  color: #2d2b2b;
  font-family: tahoma;
  font-size: 11px;
}

#Left {
  float:left;
  height: 16px;
  border-top: 1px solid #5d5d5d;
  border-bottom: 1px solid #5d5d5d;
  border-left: 1px solid #5d5d5d;
  background-color:#27c71b;
}
#Right {
  float:left;
  height: 16px;
  border-top: 1px solid #5d5d5d;
  border-bottom: 1px solid #5d5d5d;
  border-right: 1px solid #5d5d5d;
  background-color:#e1e1e1;
}
#rate {
  margin: -12px 0px 12px 0px;
}
</style>

<script type="text/javascript">
setInterval("update();", 2000);
var percent;
var del;
var count;
var left;
var right;
function update () {
$(\'#Right\').css(\'width\',right);
$(\'#Left\').css(\'width\',left);
$(\'#percent\').html(percent+\'%\');
$(\'#count\').html(count);
$(\'#del\').html(del);
}
</script>

   <div id="percent">0%</div>
  <div id="Left" style="width: 0px;">&nbsp;</div>
  <div id="Right" style="width: 400px;">&nbsp;</div>
<br><br>
<b>Результат:</b> <font id="count">0</font>/'.intval($count['count']).'.<br>
<b>Удалено вредоносного кода:</b> <font id="del">0</font><br>
';

$i = 1;
for( $p=0;$p<=ceil(intval($count['count'])/$limit);$p++ ) {
  $sql = $db->query("SELECT id,full_story,short_story,title,descr,keywords FROM `".PREFIX."_post` LIMIT {$_limit},{$limit};");
 
  while ( $row = $db->get_row($sql) ) {
  $save = array();
  
   foreach ( $row as $name=>$value ) {
   if ( $name == 'id' ) continue;
    foreach ( $delete as $code ) {
	 preg_match_all('#('.$code.')#Uis',$value,$del_code);
	 if ( isset($del_code[1]) and count($del_code[1]) > 0 ) {
	  foreach ( $del_code[1] as $dc ) {
	   $value = str_replace($dc,'',$value);
	  }
	  $save[] = "`{$name}` = '".$db->safesql(stripslashes($value))."'";
	  $del++;
	 }
    }
   }
  
   if ( is_array($save) and count($save) > 0 ) {
    $save = implode(', ',$save);
    $db->query("UPDATE `".PREFIX."_post` SET {$save} WHERE `id` = '{$row['id']}';");
   }

   $i++;
  }
 
  $per = round(100/$count['count']*$i,1);
  $left = 4*$per;
  $right = 400-$left;
 
  echo '
  <script type="text/javascript">
  count = "'.intval($i).'";
  del = "'.intval($del).'";
  percent = "'.intval($per).'";
  left = "'.intval($left).'";
  right = "'.intval($right).'";
  </script>
  ';
  flush();
 
  $db->free($sql);
  $_limit += $limit;
}


}


?>

შევინახოთ და ფაილს დავარქვათ fix.php

შემდეგ შევიდეთ საიტის ფტპზე და ავტვირთოთ fix.php,
გახსენით ბრაუზერში თქვენი საიტი. მაგ. http://saiti.com/fix.php და დააჭირეთ ნაჩატ. სკრიპტი დაიწყებს სიახლეების სკანირებას და თუ ნახავს ფრაიმებს ან ვირუსულ კოდებს სიახლეებში ყველას ამოშლის




0 მომხმარებელი კითხულობს თემას

0 მომხმარებელი, 0 სტუმარი, 0 ანონიმური წევრი

rskrutka