Apakah Ini Peretasan WordPress Terburuk Sepanjang Sejarah?

BBetter Stack
AI/미래기술경제 뉴스컴퓨터/소프트웨어

Transcript

00:00:00WordPress baru-baru ini mengalami serangkaian kerentanan, dengan yang terbaru sangat parah
00:00:04hingga peretas bisa mengambil alih panel admin secara penuh. Mulai dari SQL injection, menjalankan
00:00:09perintah shell, sangat buruk. Dan mungkin Anda tidak peduli dengan WordPress, tapi platform ini masih menopang lebih dari 44%
00:00:14situs web di dunia. Banyak situs web yang sering Anda gunakan dan tempat Anda memberikan data
00:00:19kemungkinan besar menjalankan WordPress versi rentan ini. Pada dasarnya cara kerjanya seperti
00:00:25ini: Saya telah memasang WordPress versi standar secara lokal, dan saya bisa menjalankan
00:00:29skrip pertama ini untuk memeriksa apakah kerentanannya ada. Dan bisa dilihat kita mendapatkan respons
00:00:34HTTP 207, yang berarti situs ini memang rentan. Artinya kita sekarang bisa menjalankan pemeriksaan kedua,
00:00:41yaitu masuk ke shell interaktif. Ini melakukan SQL injection ke situs, membuat pengguna admin baru,
00:00:47lalu mengunggah plugin berbahaya yang membuat saya bisa berinteraksi dengan berkas apa pun di situs web ini.
00:00:52Mari kita dalami masalah ini dan melihat persis bagaimana cara kerjanya.
00:00:58Repo yang sedang saya lihat ini menunjukkan persis cara melakukan SQL injection pada situs WordPress yang rentan, yaitu
00:01:06situs mana pun antara versi 6.90 dan 6.94, atau 7.00 dan 7.01. Seluruh serangan dimulai dengan memanggil
00:01:14endpoint unauthenticated batch v1, yang memungkinkan Anda mengelompokkan permintaan lain yang sudah divalidasi dan diperiksa perizinannya.
00:01:20Handler batch memiliki dua array paralel yang seharusnya tetap sinkron: validation dan matches.
00:01:26Namun sebuah bug membuat fungsi wp pass URL files gagal akibat jalur yang tidak valid, sehingga hanya validation yang diperbarui.
00:01:33Sehingga indeks yang sama saat memeriksa kedua array memberikan hasil yang tidak cocok. PoC memanfaatkan hal ini:
00:01:41ia mengirimkan batch yang hanya berisi satu permintaan, yaitu POST ke endpoint v2 post, yang juga membawa body permintaan.
00:01:48Karena permintaan induk divalidasi dengan benar sebagai permintaan POST, permintaan apa pun di dalam body akhirnya melewati allowlist metode,
00:01:56memungkinkan Anda mengirim permintaan GET. Lalu di dalam batch internal itu ada permintaan GET ke postingan yang tidak ada, yang memicu
00:02:02desinkronisasi tadi dan menyebabkan WordPress mengirimkan permintaan yang sama di bawah fungsi get items, di mana bidang author
00:02:10exclude dipetakan ke author not in, yang diinterpolasi oleh build yang rentan ke dalam SQL sebagai string. Pada dasarnya, karena semua ini berjalan,
00:02:18SQL tidak di-escape. PoC menggunakan serangkaian permintaan yang akhirnya memungkinkan permintaan POST ke v2 users untuk membuat
00:02:25akun admin baru. Repo ini menjelaskan semua langkah secara mendetail. Lima langkah pertama bersifat pre-auth dengan memanfaatkan bug, tapi langkah keenam hanyalah perilaku normal WordPress untuk
00:02:35pengguna terautentikasi, yaitu mengunggah paket berbahaya. Seperti yang disebutkan sebelumnya, ini hanyalah versi standar WordPress, kerentanannya tidak diakses melalui plugin berbahaya.
00:02:46Anda cukup memasang WordPress standar. Kita jalankan skrip pemeriksaan ini dulu untuk memvalidasi apakah
00:02:52kerentanannya bisa dieksekusi. Lalu kita bisa menjalankan perintah read ini misalnya, yang memberi tahu kita hal-hal seperti
00:02:57pengguna dan nama basis data. Kita sekarang juga bisa menjalankan SQL ke situs web, jadi kita bisa mengetahui hal-hal seperti
00:03:03versi basis data yang sedang berjalan. Dan semua itu sebenarnya belum bagian terburuknya. Ini bagian yang sangat parah:
00:03:07kita membuat akun admin yang memiliki akses untuk mengunggah plugin berbahaya. Dalam kasus ini,
00:03:15plugin-nya bernama web shell. Ini memungkinkan kita mengakses shell situs web, artinya kita bisa mengakses
00:03:22berkas apa pun di situs web ini. Dan serangan ini terjadi dengan cara yang dijelaskan sebelumnya di video. Jadi
00:03:27setelah admin dibuat, plugin diunggah, lalu akhirnya pengguna tersebut dihapus. Jadi keberadaan
00:03:34plugin dan apa yang terjadi menjadi lebih terselubung. Untuk menunjukkan seberapa buruk ini, saya buat skrip terpisah
00:03:38yang akan membuat admin lalu mempertahankannya di sistem.
00:03:40Di sini saya punya nama pengguna dan kata sandi. Kembali ke situs web, jika saya membuka rute wp login, saya bisa memasukkan
00:03:47nama pengguna dan kata sandi itu, klik masuk, dan sekarang saya punya akses penuh ke panel admin. Jika semua ini membingungkan, jangan khawatir,
00:03:54saya juga butuh waktu lama untuk memahaminya. KLAIM yang beredar menyatakan bahwa rantai eksploitasi yang dihasilkan sangat
00:04:00rumit sehingga peneliti keamanan manusia butuh waktu berminggu-minggu, atau bahkan berbulan-bulan, untuk menemukan dan
00:04:05merangkainya sendiri. Tidak ada peneliti keamanan yang bisa menemukan dan menyelesaikan rantai eksploitasi ini
00:04:10dalam 10 jam tanpa AI. Dan ini cukup menakutkan karena pihak jahat bisa saja memiliki bot yang memindai
00:04:17repo, memeriksa URL, hanya menunggu kerentanan muncul dan mengeksploitasinya dalam waktu singkat menggunakan AI.
00:04:23Seorang pengguna di Reddit mengatakan situs mereka diretas hanya dua hari setelah kerentanan ditemukan.
00:04:27Dan karena mereka hanya melakukan pembaruan di akhir pekan, penyerang sempat membuat admin baru dan masuk bagi mereka yang
00:04:33rentan. Eksploit ini sudah diperbaiki di versi 7.0.2, jadi Anda bisa memperbaruinya ke versi itu. Tapi ini kasus yang sangat gila.
00:04:40Anda bisa menemukan repo dan artikel di kolom komentar yang saya gunakan untuk menjalankan PoC ini. Dan jangan lupa
00:04:46berlangganan Better Stack untuk tetap mendapatkan kabar berita teknologi terbaru. Semoga kalian menyukainya, dan
00:04:50seperti biasa, sampai jumpa di video berikutnya.

Key Takeaway

Kerentanan kritis pada WordPress versi 6.90–6.94 dan 7.00–7.01 memungkinkan penyerang mengambil alih panel admin dan mengunggah webshell tanpa autentikasi, yang kini telah diperbaiki di versi 7.0.2.

Highlights

  • WordPress menopang lebih dari 44% situs web di seluruh dunia, membuat dampak celah keamanan versi rentan sangat luas.

  • Kerentanan terjadi pada WordPress versi 6.90 hingga 6.94 serta versi 7.00 hingga 7.01.

  • Eksploitasi memanfaatkan bug desinkronisasi array pada endpoint batch v1 untuk melakukan SQL injection tanpa autentikasi.

  • Serangan memungkinkan penyerang membuat akun admin baru dan mengunggah plugin webshell untuk mengakses seluruh berkas sistem.

  • Seluruh rantai eksploitasi telah diperbaiki secara resmi pada WordPress versi 7.0.2.

Timeline

Dampak dan Keparahan Kerentanan WordPress

  • WordPress mendayagunakan lebih dari 44% situs web global, sehingga celah keamanan di instalasi standar mengancam banyak pengguna.
  • Pengujian lokal menunjukkan respons HTTP 207 saat memvalidasi keberadaan kerentanan.
  • Eksploitasi dapat ditingkatkan menjadi shell interaktif melalui SQL injection dan pembuatan akun admin baru.

Celah keamanan ini ditemukan pada instalasi standar WordPress tanpa memerlukan plugin berbahaya tambahan. Melalui respons kode status tertentu, penyerang memverifikasi kerentanan sebelum menjalankan skrip serangan lanjutan. Tahapan tersebut berlanjut pada pengambilalihan hak akses penuh melalui unggahan plugin berisikan fungsi webshell.

Mekanisme Teknis Desinkronisasi Batch dan SQL Injection

  • Kerentanan berdampak spesifik pada WordPress versi 6.90 hingga 6.94 dan versi 7.00 hingga 7.01.
  • Endpoint batch v1 gagal menjaga sinkronisasi antara dua array paralel akibat kegagalan fungsi wp pass URL files.
  • Ketidakcocokan indeks array memungkinkan permintaan GET melewati validasi dan mengesampingkan pembersihan klausa SQL.

Serangan dimulai dengan mengirim permintaan khusus ke endpoint batch v1. Jalur yang tidak valid menyebabkan kegagalan fungsi pemrosesan URL sehingga array validasi dan array pencocokan menjadi tidak sejajar. Desinkronisasi ini dimanfaatkan untuk mengirim permintaan ke endpoint postingan yang tidak ada, memaksa sistem mengeksekusi parameter pencarian dengan nilai yang tidak di-escape ke dalam query SQL.

Pengambilalihan Panel Admin dan Pengunggahan Webshell

  • Skrip serangan mengekstraksi informasi sensitif seperti versi dan nama basis data secara langsung.
  • Akses admin buatan digunakan untuk mengunggah plugin webshell guna membaca dan mengubah berkas server.
  • Penyerang dapat menghapus jejak akun buatan setelah instalasi plugin selesai untuk menyembunyikan aktivitas.

Perintah SQL yang berhasil dieksekusi mengungkap struktur basis data secara bertahap. Setelah hak akses administrator didapatkan melalui endpoint pembuatan pengguna, penyerang memasang plugin eksternal untuk memperoleh akses shell penuh. Setelah webshell aktif, akun admin awal dapat dihapus untuk mempersulit deteksi forensik.

Peran AI dalam Kecepatan Eksploitasi dan Langkah Perbaikan

  • Rantai eksploitasi tergolong sangat rumit dan membutuhkan bantuan AI untuk dirangkai dalam waktu singkat.
  • Bot otomatis mengeksploitasi situs yang rentan dalam hitungan hari setelah publikasi celah keamanan.
  • Pembaruan ke WordPress versi 7.0.2 menutup secara penuh seluruh celah eksploitasi ini.

Kompleksitas rantai serangan ini membutuhkan analisis mendalam yang umumnya memakan waktu lama bagi peneliti keamanan tanpa bantuan alat otomatisasi AI. Kasus di lapangan menunjukkan peretasan terjadi dalam jeda dua hari sebelum pengelola situs sempat melakukan pemeliharaan rutin. Mengunggah pembaruan ke versi 7.0.2 menjadi langkah mitigasi utama untuk mengamankan instalasi WordPress.

Community Posts

View all posts