Let op met plugins en gecodeerde PHP code

php logo

Stel dat je je blog wil beveiligen met bijvoorbeeld een rechter muisklik verbod, het uitschakelen van drag and drop en het onmogelijk maken van het selecteren van tekst. Met een beetje slim Google gebruik kom je dan bij WP-CopyRightPro uit. Je download de plugin van de site en zet deze via FTP op je WordPress site. Je activeert de plugin en je bent helemaal blij met het resultaat. Maar laten we eens wat kritischer kijken.

Bij het uitpakken van deze zipfile van versie 2.5. zien we de volgende bestanden (zonder afbeeldingen) : about.html, index.php, panel.php, readme.txt, script.htm.

De bestanden panel.php en index.php zijn geselecteerd voor nader onderzoek. Na het bestand panel.php bekeken te hebben en geen rare PHP code te hebben gevonden, gaan we door naar index.php. En nu wordt het leuk!

In index.php zien we twee keer een base64 code snippet. Dat gebruiken makers van plugins/themes wel vaker, en dan vooral (maar niet alleen) om bepaalde code te verbergen. Een niet echt nette manier van programmeren dus.

eval(base64_decode('JGNwcmY9J1puVnVZM1JwYjI0Z1kyOXdlWEpwWjJoMGNIVjVaR2tvS1hzTkNtVmphRzhnSnp4emJXRnNiRDVVYUdseklITnBkR1VnYVhNZ2NISnZkR1ZqZEdWa0lHSjVJRHhoSUdoeVpXWTlJbWgwZEhBNkx5OTNjQzFqYjNCNWNtbG5hSFJ3Y204dVkyOXRMeUkrVjFBdFEyOXdlVkpwWjJoMFVISnZQQzloUGp3dmMyMWhiR3crSnp0OSc7DQpldmFsKGJhc2U2NF9kZWNvZGUoJ1pYWmhiQ2hpWVhObE5qUmZaR1ZqYjJSbEtDUmpjSEptS1NrNycpKTs='));
$inc_crp='YWRkX2FjdGlvbignYWRtaW5fbWVudScsJ2NvbmZpZ19jb3B5cHJvJyk7DQphZGRfYWN0aW9uKCd3cF9oZWFkJywnY29weXJpZ2h0aGVhZCcpOw0KYWRkX2FjdGlvbignd3BfZm9vdGVyJywnY29weXJpZ2h0cHV5ZGknKTs=';
eval(base64_decode('ZXZhbChiYXNlNjRfZGVjb2RlKCRpbmNfY3JwKSk7'));

Maar wat doet deze code? We gaan deze code even decoderen. De eerste regel levert ons het volgende op.

$cprf='ZnVuY3Rpb24gY29weXJpZ2h0cHV5ZGkoKXsNCmVjaG8gJzxzbWFsbD5UaGlzIHNpdGUgaXMgcHJvdGVjdGVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly93cC1jb3B5cmlnaHRwcm8uY29tLyI+V1AtQ29weVJpZ2h0UHJvPC9hPjwvc21hbGw+Jzt9';
 eval(base64_decode('ZXZhbChiYXNlNjRfZGVjb2RlKCRjcHJmKSk7'));

Weer een stuk gecodeerde code. Decoderen weer, en kijk eens aan, een verborgen link.

function copyrightpuydi(){
echo '<small>This site is protected by <a href="http://wp-copyrightpro.com/">WP-CopyRightPro</a></small>';}
eval(base64_decode($cprf));

Met deze code wordt de functie waarin de verborgen link zit aangemaakt. De code hieronder is de gedecodeerde variabele $inc_crp

add_action('admin_menu','config_copypro');
add_action('wp_head','copyrighthead');
add_action('wp_footer','copyrightpuydi');

En met onderstaande code worden de actions neergezet.

eval(base64_decode($inc_crp));

De plugin in dit artikel dient slechts als voorbeeld, het kan zijn dat de laatste versie van deze plugin deze code niet meer gebruikt.

Plugin tips

  • Download plugins alleen vanaf wordpress.org
  • Controleer plugins als je ze toch vanaf een andere site download.
  • Neem contact op met nostromo.nl als je twijfelt, of maak gebruik van het Website Spreekuur.

, ,