Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Непонятный PHP код на сайте


ShopK
 Погделиться

Рекомендованные сообещёния

Добрый гдень!
Обнаружил, что на сайте потому чтольше всего ошипотому чток выдает и потому чтольше всего обраещёний к файлу ud.php.

 

Спойлер


По коду видно, что он собирает логи, но зачем ему пароль и зачем при ввогде пароля он сивит куку, что залогинен на час, понять не получается. Помогите разобраться, что кроме логирования он гделает и ггде эти логи могут использоваться?

 

Спойлер
<?php

$dbPath = 'db/';

if (isset($_REQUEST['js'])) {

    header("Content-Type: application/javascript");
    echo "
/*var encodeDataToURL = (data) => {
    return Object
        .keys(data)
        .map(value => `\${value}=\${encodeURIComponent(data[value])}`)
        .join('&');
};*/

var client = {
    date: new Date(),
    referer: window.location.href,
    platform: navigator.platform,
    browser_useragent: navigator.userAgent,
    browser_wh: document.documentElement.clientWidth+'x'+document.documentElement.clientHeight, 
    browser_lang: navigator.language,
    wh: screen.width+'x'+screen.height,
    px: ((navigator.appName.substring(0,3)=='Mic') ? screen.colorDepth : screen.pixelDepth)
    
};

var params = [];
for (var key in client)
    params.push(key + '=' + encodeURIComponent(client[key]));
params = params.join('&');

(window.Image ? (new Image()) : document.createElement('img')).src = '".substr($_SERVER['REQUEST_URI'], 0, strpos($_SERVER['REQUEST_URI'], '?'))."?post&'+params;
    ";

}
elseif (isset($_REQUEST['post'])) {

    $dbFile = $dbPath.date('Y-m-d').'.json';

    include 'classes/browser.class.php';
    include 'classes/realip.class.php';

    $realIP = new RealIP;
    $realIP = $realIP->get();
    $browser = new Browser;

    $curl = curl_init("http://freegeoip.net/json/".$realIP);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10); 
    curl_setopt($curl, CURLOPT_TIMEOUT, 5);
    $geo = curl_exec($curl);
    curl_close($curl);
    $geo = json_decode($geo,true);

    unset($geo['ip']);

    $data = [
        'ip' => $realIP,
        'geo' => $geo,
        'server' => [
            'date' => date("D M j Y G:i:s T"),
            'referer' => $_SERVER['HTTP_REFERER'],
            'platform' => $browser->getPlatform(),
            'browser_useragent' => $browser->getUserAgent(),
            'is_aol_version' => $browser->getAolVersion(),
            'is_aol' => $browser->isAol() ? 'yes' : 'no',
            'is_robot' => $browser->isRobot() ? 'yes' : 'no',
            'is_chrome_frame' => $browser->isChromeFrame() ? 'yes' : 'no'
        ],
        'client' => [ 
            'date' => $_REQUEST['date'],
            'referer' => $_REQUEST['referer'],
            'platform' => $_REQUEST['platform'],
            'browser_useragent' => $_REQUEST['browser_useragent'],
            'browser_lang' => $_REQUEST['browser_lang'],
            'browser_wh' => $_REQUEST['browser_wh'],
            'wh' => $_REQUEST['wh'],
            'px' => $_REQUEST['px']        
        ]
    ];

    if (!file_exists($dbFile) || (file_exists($dbFile) && trim(file_get_contents($dbFile)) == ''))
        file_put_contents($dbFile, '{}');

    $db = json_decode(file_get_contents($dbFile), TRUE);
    array_push($db, $data);

    file_put_contents($dbFile, json_encode($db));

}
else {

    if (isset($_POST['password']) && $_POST['password'] == 'anypass') {
        setcookie('loged','true',time()+3600);
    }

    echo '<style>body {background: #1b2b34;color:#ececec;font-family: monospace;} h1 {color:#96b5b4;} a {color:#ececec;text-decoration: none;font-size: 16px;} span {color:#59737e;} form {display: inline-block;vertical-align: -webkit-baseline-middle;} form input {background: none;border: 0;padding: 5px;color: #75b5b4;}</style>';
    
    if ($_POST['password'] != 'anypass' && !isset($_COOKIE['loged']) && $_COOKIE['loged'] != 'true') {

        echo '<table width="100%" border="0" cellspacing="10" cellpadding="0" style="font-size:12px;">';
        echo '<tr><td><h1>password: <form action="?login" method="POST"><input type="password" name="password"></form></h1></td></tr>';
        echo '</table>';
        exit();

    }

    if (isset($_REQUEST['db'])) {

        $dbFile = $dbPath.$_REQUEST['db'];

        if (file_exists($dbFile)) {
            $db = json_decode(file_get_contents($dbFile), TRUE);
            $thead = false;

            echo '<table width="100%" border="0" cellspacing="10" cellpadding="0" style="font-size:12px;">';
            echo '<tr><td><h1>[email protected]:~$ get db '.$_REQUEST['db'].' <span>// COUNT '.count($db).'</span></h1></td></tr>';
            foreach (array_reverse($db) as $user) {

                echo '<tr><td><h1>[email protected]:~$ get ipinfo '.$user['ip'].'</h1></td></tr>';
                echo '<tr>';
                    // echo '<td><h1>'.$user['ip'].'</h1></td>';
                    /*echo '<td>';
                        echo '<table width="100%" border="1" cellspacing="0" cellpadding="4" style="font-size:14px;">';

                            $type = 'ip';

                            foreach (array_reverse($user[$type]) as $name => $value) {

                                echo '<tr style="'.$style[$type].'">'; 
                                echo '<th>'.strtoupper($name).'</th>';
                                echo '</tr>';
                                echo '<tr style="'.$style[$type].'">'; 
                                echo '<td>'.$value.'</td>';
                                echo '</tr>';

                            }

                        echo '</table>';
                    echo '</td>';*/
                    echo '<td>';
                        

                        foreach (['geo', 'server', 'client'] as $type) { 

                            echo '<table width="100%" border="1" cellspacing="1" cellpadding="4" bordercolor="a3be8c" style="font-size:14px;">';                        

                                echo '<tr><th colspan="20" style="font-size:24px;">'.strtoupper($type).'</th></tr>';
                                echo '<tr>'; 
                                foreach ($user[$type] as $name => $value)
                                    echo '<th>'.strtoupper($name).'</th>';
                                echo '</tr>';
                                echo '<tr>'; 
                                foreach ($user[$type] as $name => $value) {
                                    if (stristr($value, 'http'))
                                        $value = '<div style="overflow-x: auto;width: 500px;">'.$value.'</div>';
                                    echo '<td>'.$value.'</td>';
                                }
                                echo '</tr>';

                            echo '</table><br>';

                        }

                    echo '</td>';
                echo '</tr>';

                echo '<tr><th colspan="2"><br></th></tr>';

            }
            echo '</table>';

            // echo "<pre>";
            // print_r($db);
            // echo "</pre>";
        }
        else {
            echo '<table width="100%" border="0" cellspacing="10" cellpadding="0" style="font-size:12px;">';
            echo '<tr><td><h1>[email protected]:~$ get db '.$_REQUEST['db'].'</h1></td></tr>';
            echo '<tr><td><a href="?">Error: not found database</a></td></tr>';
            echo '</table>';
        }

    }
    else {

        echo '<table width="100%" border="0" cellspacing="10" cellpadding="0" style="font-size:12px;">';
        echo '<tr><td><h1>[email protected]:~$ get list db</h1></td></tr>';

        foreach (scandir('db/', 1) as $name)
                if (stristr($name, '.json'))
                    echo '<tr><td><a href="?db='.$name.'" style="margin-right: 10px;">> '.$name.'</a></td></tr>';

        echo '</table>';
    }

}

?>

 

 

Изменено пользователем ShopK
повторное изображение
Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.