Den här månaden har verktyget TimThumb använts för att hacka ett stort antal WordPress-sajter. Timthumb används för att skala ner en bild den hämtat från valfri adress. Av säkerhetsskäl går det som standard endast att hämta filer från vissa domännamn, till exempel flickr.com och picasa.com.
Kontrollen av adressen som angetts gör via php-kommandot stristr som endast kontrollerar att en av de godkända domännamnen finns med någonstans i hostnamnet som angetts.
Det innebär att även adresser som http://flickr.com.firastbill.com/flickr.com/huy3.php godkändes, filen hämtades och sparades på WordPress-sajten. På den hackade WordPress-sajten har oftast två shellscript-filer lagts in, på wp-admin/upd.php och wp-content/upd.php. Passwordet som används verkar alltid vara en slumpad siffra upp till 100 och det är därför lätt att upptäcka passwordet utifrån md-hashen. I fallet nedan är passwordet 59.
Dessutom läggs php-kod in i wp-config.php och wp-settings.php. I wp-config läggs detta in:
I wp-settings.php läggs detta in:
Koden i wp-settings körs endast om Googlebot kommer på besök medan koden i wp-config.php används av hackern för att kontrollera sajten. Förutom att få direktaccess till WordPress-sajtens adminsida kan hackern även ladda hem och köra php-kod. Denna möjlighet har hackern använt på ett lite oväntat sätt. En rad ur accessloggen för en hackad sajt ser ut så här:
Superpuperdomain.com står under hackerns kontroll och ligger för tillfället nere så man kan inte se vad filen tim.txt. Däremot kan man se vad som skedde samtidigt. När scriptet från superpuperdomain.com kördes hämtades http://timthumb.googlecode.com/svn/trunk/timthumb.php som är senaste versionen av TimThumb.
Den nya TimThumb-filen har installerats och säkerhetshålet som gjorde att hackern först kom in är nu alltså åtgärdat. Antagligen görs det för att stoppa andra hackers från att komma in och försvåra upptäckt av sajter som hackats.
Sucuri.net listar över 150 olika WordPress-tema som innehåller en osäker version av Timthumb. De har då endast kontrollerat de tema som är fritt tillgängliga på WordPress.org.
Uppdatering 29 augusti: I fredags körde hackern ett script på http://91.196.216.20/16.txt (sparad kopia). Detta script söker genom kontot efter wp-settings.php och tar bort den skadliga koden som tidigare lagts in. Även http://91.196.216.20/19.txt (sparad kopia) har använts för att hämta hem ytterligare filer och lägga in krypterad javascriptkod i wp-includes/js/l10n.js och wp-includes/js/jquery/jquery.js.