---
title: "Backdoor PHP di Hosting, Cara Menemukan dan Menghapusnya"
description: "Ciri file backdoor PHP, perintah find dan grep untuk melacaknya di hosting, tempat persembunyian yang sering terlewat, dan cara menghapus tanpa kambuh."
url: "https://nivelva.com/insight/backdoor-php-hosting-cara-menemukan-menghapusnya"
category: "Keamanan/Cyber Security"
tags: ["backdoor","php","web shell","hosting","malware"]
author: "Theresia Candiawan"
published: "2026-11-07T03:02:00+07:00"
updated: "2026-11-07T03:02:00+07:00"
language: "id"
publisher: "Nivelva (https://nivelva.com)"
---

# Backdoor PHP di Hosting, Cara Menemukan dan Menghapusnya

> **Jawaban singkat:** Backdoor PHP adalah kode yang memberi penyerang jalan masuk kembali ke hosting. Cari file PHP yang baru berubah, fungsi seperti eval dan base64_decode, file PHP di folder upload, serta auto_prepend_file dan cron asing, lalu ganti kode dengan salinan bersih dan tutup celah masuknya.

Backdoor PHP bisa ditemukan dengan mencari tiga hal: file PHP yang berubah tanpa sepengetahuanmu, kode yang menjalankan perintah dari input pengunjung, dan file PHP di tempat yang seharusnya tidak berisi PHP.

Kenapa ini penting? Karena backdoor adalah alasan utama website yang sudah "dibersihkan" kembali terinfeksi beberapa hari kemudian. Penyerang yang berhasil masuk lewat celah plugin atau password bocor biasanya menanam beberapa pintu belakang sekaligus. Kalau satu saja tertinggal, mereka bisa masuk lagi kapan pun, bahkan setelah celah awalnya kamu tutup.

## Apa itu backdoor PHP dan web shell?

Backdoor PHP adalah kode yang sengaja ditanam supaya penyerang bisa menjalankan perintah di hostingmu tanpa login. Bentuknya beragam. Ada yang berupa satu baris kecil yang disisipkan ke file asli seperti `index.php` atau `functions.php`. Ada juga **web shell**, yaitu file utuh dengan antarmuka mirip file manager untuk mengunggah, mengedit, dan menghapus file, bahkan menjalankan perintah sistem.

Yang membuatnya sulit ditemukan: kode ini sering disamarkan. Nama filenya dibuat mirip file sah (misalnya `wp-config-sample.php` di folder yang salah, atau `class-wp-cache.php`), isinya dikodekan berlapis, dan tanggal ubahnya dipalsukan agar terlihat lama.

## Ciri kode yang patut dicurigai

Satu fungsi saja belum tentu jahat. Plugin sah pun memakai `base64_decode`. Yang perlu diwaspadai adalah **kombinasi**: input dari pengunjung yang langsung dijalankan, atau teks acak panjang yang di-decode lalu dieksekusi.

| Pola | Kenapa mencurigakan |
|:--|:--|
| `eval(base64_decode(...))` | Menjalankan kode yang sengaja disembunyikan |
| `eval($_POST[...])` atau `$_REQUEST` | Menjalankan apa pun yang dikirim penyerang |
| `gzinflate`, `str_rot13`, `gzuncompress` berlapis | Teknik penyamaran kode |
| `system`, `shell_exec`, `passthru`, `exec` | Menjalankan perintah sistem dari PHP |
| `assert($_...)` atau nama fungsi dari variabel | Cara lain menjalankan kode dinamis |
| Baris sangat panjang tanpa spasi di awal file | Payload tersandi yang ditempel |
| `move_uploaded_file` di file kecil tak dikenal | Pengunggah file tersembunyi |

## Bagaimana cara mencarinya dari terminal?

Kalau hostingmu menyediakan akses SSH atau Terminal di cPanel, masuk ke folder website lalu jalankan perintah berikut. Semua hanya **membaca**, tidak mengubah apa pun.

**File PHP yang berubah dalam 7 hari terakhir:**

```
find . -type f -name "*.php" -mtime -7
```

Ganti `-7` sesuai perkiraan kapan masalah mulai muncul. Ingat, tanggal bisa dipalsukan, jadi jangan hanya mengandalkan cara ini.

**Fungsi yang sering dipakai backdoor:**

```
grep -rlE "eval\(|base64_decode\(|gzinflate\(|str_rot13\(|shell_exec\(|passthru\(" --include="*.php" .
```

Hasilnya daftar file yang perlu dibuka satu per satu. Fokus pada file yang bukan bagian dari plugin atau tema resmi.

**File PHP di folder upload:**

```
find wp-content/uploads -type f -name "*.php"
```

Untuk situs non-WordPress, sesuaikan dengan folder tempat pengguna mengunggah file.

**File dengan nama atau lokasi aneh:** nama yang diawali titik (`.cache.php`), berakhiran ganda (`gambar.jpg.php`), atau file PHP di folder `images`, `css`, dan `fonts`.

Untuk pemindaian otomatis di server, alat seperti Linux Malware Detect dan ClamAV membantu menyaring file yang cocok dengan tanda tangan malware. Cara memasangnya ada di [panduan scan malware dengan ClamAV dan Maldet](https://nivelva.com/insight/cara-scan-malware-server-linux-clamav-maldet).

## Tempat persembunyian yang sering terlewat

Banyak orang sudah memeriksa semua file PHP, tapi backdoor tetap aktif. Biasanya karena ia tidak tinggal di file PHP biasa:

- **`.htaccess` dan `.user.ini`.** Direktif `auto_prepend_file` membuat PHP menjalankan sebuah file sebelum setiap skrip. Penyerang memakainya untuk memuat backdoor dari lokasi tersembunyi. Cari dengan `grep -r "auto_prepend_file" .` termasuk di folder induk.
- **Cron job.** Buka menu Cron Jobs di cPanel. Perintah asing yang mengunduh file dari internet (misalnya memakai `wget` atau `curl` ke alamat tak dikenal) bisa memasang ulang backdoor setiap beberapa menit.
- **Database.** Beberapa malware menyimpan kodenya di tabel opsi lalu memanggilnya dari satu baris kecil di file tema.
- **Website lain di akun yang sama.** Di shared hosting, satu akun cPanel sering berisi beberapa situs. Kalau hanya satu yang dibersihkan, situs lain menjadi sumber infeksi ulang.

> **Jangan unduh dan buka di laptop:**
>
> Kalau ingin menyimpan salinan file mencurigakan sebagai bukti, kompres ke arsip dan simpan apa adanya. Jangan menjalankannya di server lokal atau membukanya dengan program yang bisa mengeksekusi PHP.

## Bagaimana menghapusnya supaya tidak kambuh?

Menghapus file yang ketemu baru separuh pekerjaan. Urutan yang lebih aman:

1. **Buat salinan bukti** seluruh folder dan database sebelum mengubah apa pun.
2. **Ganti kode, jangan menambal.** Untuk aplikasi seperti WordPress, ganti inti, plugin, dan tema dengan salinan resmi. Untuk kode buatan sendiri, ambil dari repositori Git atau arsip yang kamu yakini bersih. Detail alurnya ada di [cara membersihkan malware WordPress](https://nivelva.com/insight/cara-membersihkan-malware-wordpress-kehilangan-data).
3. **Hapus file asing** yang tidak ada di salinan resmi, termasuk di folder upload.
4. **Bersihkan `.htaccess`, `.user.ini`, dan cron** dari baris yang tidak kamu kenal.
5. **Ganti semua password:** panel hosting, FTP, database, dan admin aplikasi.
6. **Cari pintu masuk awal.** Lihat log akses untuk permintaan `POST` ke file yang tidak wajar sekitar waktu file backdoor dibuat. Cara membacanya dibahas di [membaca log server untuk deteksi serangan](https://nivelva.com/insight/log-server-deteksi-serangan).
7. **Perbarui atau buang** plugin, tema, atau library yang memiliki celah.

Setelah itu, jalankan lagi perintah pencarian di atas beberapa hari berturut-turut. Kalau muncul file baru, berarti masih ada jalan masuk yang belum tertutup.

## Langkah pencegahan setelah bersih

Matikan eksekusi PHP di folder upload. Di Apache, banyak orang menaruh `.htaccess` di folder tersebut yang menolak akses ke file `.php`. Atur izin file wajar (umumnya 644 untuk file dan 755 untuk folder), jangan memakai 777. Hapus plugin dan tema yang tidak dipakai, dan jangan memasang versi bajakan, karena versi seperti itu sering sudah membawa backdoor dari awal. Terakhir, simpan backup rutin di lokasi terpisah, supaya bila semua cara gagal, kamu punya titik pulih yang bersih.

## Pertanyaan yang sering diajukan

### Apakah antivirus hosting pasti menemukan backdoor?

Tidak selalu. Pemindai mengandalkan tanda tangan yang sudah dikenal, sedangkan backdoor baru atau yang disandikan ulang bisa lolos. Pemeriksaan manual dan penggantian kode dengan salinan bersih tetap diperlukan.

### Kalau ketemu satu backdoor, apakah pasti ada yang lain?

Sering kali iya. Penyerang biasanya menanam beberapa pintu sekaligus di lokasi berbeda, jadi lanjutkan pencarian sampai semua tempat di atas sudah diperiksa.

### Bolehkah file backdoor langsung saya hapus?

Boleh setelah kamu menyimpan salinan bukti. Tapi bila backdoor berupa sisipan di file asli, lebih aman mengganti file itu dengan versi resmi daripada mengedit barisnya.

## Sumber

- <https://www.php.net/manual/en/ini.core.php#ini.auto-prepend-file>
- <https://wordpress.org/documentation/article/faq-my-site-was-hacked/>

---

Diterbitkan oleh Nivelva Insight (https://nivelva.com/insight/). Artikel ini: https://nivelva.com/insight/backdoor-php-hosting-cara-menemukan-menghapusnya
Kontak Nivelva: WhatsApp https://wa.me/6285111245007, email hello@nivelva.com
