Apa Itu Penyertaan File & Eksekusi Kode Sewenang-wenang? - MalCare

Diterbitkan: 2023-04-13

Penyertaan File dan Eksekusi Kode Sewenang-wenang: Awal bulan ini, situs web tiket pesawat yang dibangun di WordPress diretas sehingga data pribadi ratusan ribu pengunjung terbuka. Dalam posting sebelumnya tentang mengapa peretas meretas , kami membahas semua alasan mengapa peretas meretas termasuk mencuri data, mengirim email spam, mereka bahkan dapat menggunakan teknik SEO topi hitam untuk menentukan peringkat produk mereka sendiri (disarankan baca – peretasan farmasi) , dll.

Mempelajari bagaimana peretas meretas situs web adalah kunci untuk mencegahnya, itulah sebabnya kami mencantumkan serangan peretasan paling umum yang dilakukan di situs web WordPress di artikel sebelumnya.

Ketika kita berbicara tentang serangan peretasan yang umum, Anda kemungkinan besar akan berpikir tentang serangan brute force. Tetapi tahukah Anda bahwa penyertaan file dan eksekusi kode arbitrer juga merupakan salah satu serangan peretasan yang paling umum dilakukan di situs web WordPress. Dalam postingan ini, kita akan membahas lebih dalam tentang serangan-serangan ini dengan maksud untuk memahaminya secara mendetail.

Untuk memahami cara kerja serangan ini, hal pertama yang harus Anda ketahui adalah bahwa ini melibatkan file PHP.Anda pasti bertanya-tanya kenapa? Itu karena serangan File Inclusion dan Arbitrary Code Execution melibatkan penggunaan file PHP.

Tapi apa itu file PHP? Pikirkan lemari dapur. Di dalam lemari terdapat beberapa barang seperti gula, garam, rempah-rempah, perkakas, dll. Masing-masing barang tersebut memiliki kegunaan untuk disajikan di dapur.File PHP adalah lemari dan kode di dalam file adalah item yang memungkinkan eksekusi fungsi tertentu yang diinginkan oleh peretas.Inilah alasan mengapa peretas lebih suka mengunggah file PHP daripada file lain seperti katakanlah file JPEG atau PDF. File JPEG dan PDF tidak dapat dieksekusi, yaitu peretas tidak dapat menggunakan file ini untuk menjalankan fungsi apa pun. Seseorang hanya dapat membaca (yaitu melihat) mereka. Mereka tidak dapat digunakan untuk membuat perubahan apa pun pada situs yang diretas.

Seorang peretas yang telah mengunggah file PHP di server situs web Anda dapat menggunakannya untuk melakukan apa saja di situs web Anda. Dan inilah mengapa file PHP digunakan untuk menjalankan serangan File Inclusion dan Arbitrary Code Execution.

Apa itu Serangan Penyertaan File?

Cara terbaik untuk memahami serangan situs web yang kompleks seperti ini adalah dengan mencontohkan skenario nyata. Katakanlah Anda menjalankan situs web untuk institusi Anda dan situs tersebut disebut college.com. Anda mengizinkan beberapa siswa untuk mengakses situs sehingga mereka dapat memposting gambar yang diambil selama acara kampus baru-baru ini. Seseorang menyalahgunakan akses yang Anda berikan dan mengunggah file PHP berbahaya (bernama hack.php) ke situs web. Tujuannya adalah untuk mendapatkan kendali atas situs web perguruan tinggi. Saat siswa mengunggah file PHP berbahaya, secara default disimpan di folder Unggah.Siapa pun yang mengetahui struktur dasar WordPresstahu ke mana perginya file yang diunggah.

Penyertaan File dan Eksekusi Kode Sewenang-wenang
Unggahan apa pun yang bukan tema atau plugin disimpan di folder Unggah. Siapa pun yang mengetahui struktur WordPress tahu di mana folder Upload dapat ditemukan. Bagi yang belum tahu, disinilah letak folder Upload. Buka File Manager dari cPanel Web Hosting, lalu buka Public_html > wp-content > upload.

File bertindak seperti pintu yang memungkinkan peretas untuk berinteraksi dengan file dari jarak jauh. Perhatikan bahwa peretas masih belum memiliki kendali atas situs tersebut, mereka hanya memiliki jendela untuk komunikasi. Agar lebih mudah dipahami, bayangkan orang A ingin pergi ke negara yang tidak diperbolehkan. Jadi dia mengirim agen, orang B. Orang A adalah hacker, negara singkatan dari situs web perguruan tinggi dan orang B adalah file hack.php.

File PHP diunggah ke website perguruan tinggi —-> File disimpan di server website

Orang B hanya terlatih dalam beberapa hal dan hanya dapat melakukan banyak hal. Jadi orang A perlu menginstruksikannya tentang apa yang harus dilakukan selanjutnya. Dengan nada yang sama, file PHP membuat jendela komunikasi dan kemudian menunggu lebih banyak perintah dari peretas.

Mari kita asumsikan bahwa hack.php dibuat dengan cara yang memungkinkan pengunggahan lebih banyak file ke situs web. Peretas membuat file (bernama control.php) yang akan dia unggah menggunakan hack.php yang sudah ada di server situs web. File baru – control.php akan memungkinkan peretas untuk memiliki akses penuh ke situs web. Dia menggunakan jendela yang disediakan oleh file hack.php untuk mengunggah file control.php ke dalam situs.Proses upload file control.php ini menggunakan file (hack.php) yang sudah ada di server website disebut Local File Inclusion .

Salah satu contoh bagus Eksekusi File Lokal adalah kerentanan yang diamati pada plugin Easy Forms for MailChimp WordPress (v 6.0.5.5) . Menggunakan plugin MailChimp, pemilik situs web dapat menambahkan berbagai jenis formulir ke situs WordPress mereka. Kerentanan memungkinkan peretas mengunggah file PHP ke server situs web menggunakan formulir MailChimp.Setelah file disimpan di server situs web, peretas dapat berkomunikasi dengan mereka dan mengeksekusi kode yang memungkinkan mereka mengontrol server atau merusak situs dengan berbagai cara.

Berikut skenarionya: Situs web perguruan tinggi memasang firewall dan oleh karena itu peretas tidak dapat mengunggah control.php. Meskipun dia tidak dapat mengunggah file lain yang terpisah, dia dapat 'menyertakan' file. Artinya dia bisa menyisipkan file di dalam file hack.php yang sudah ada di server website perguruan tinggi. Jika peretas dapat mengunggah file control.php, server situs web akan membaca file tersebut dan mengeksekusi kode di dalamnya yang memungkinkan peretas melakukan apa pun yang diinginkannya. Tapi karena dia tidak bisa mengupload file, dia harus mencari cara lain untuk membuat server membaca file control.php. Jalur yang dibuat oleh peretas tersedia online dan server situs web perguruan tinggi harus dapat membacanya. Oleh karena itu, peretas membuat jalur dan membuatnya tersedia secara online sehingga server situs web perguruan tinggi dapat membacanya. Server kemudian mulai mengeksekusi kode yang diperoleh dari jalur dan karena kode tersebut ditulis dengan cara yang memungkinkan peretas mengontrol penuh situs tersebut, peretasan sekarang mengontrol situs web perguruan tinggi. Proses membuat server membaca file jarak jauh ini disebut Remote File Inclusion.

Penyertaan File dan Eksekusi Kode Sewenang-wenang
Contoh yang menunjukkan bagaimana serangan TimThumb terjadi

Kasus kerentanan TimThumb adalah contoh populer dari Remote File Inclusion. TimThumb adalah plugin WordPress yang memungkinkan pengeditan gambar dengan mudah di situs WordPress. Itu memungkinkan siapa saja untuk menggunakan gambar yang diperoleh dari situs berbagi gambar seperti imgur.com dan flickr.com. TimThumb mengenali imgur sebagai situs yang valid (atau masuk daftar putih). Peretas yang memanfaatkan kriteria ini membuat file dengan URL yang menyebutkan situs yang valid seperti http://www.imgur.com.badsite.com.Saat mereka mengunggah file berbahaya dengan URL seperti yang kami sebutkan di atas, plugin tertipu sehingga percaya bahwa file tersebut berasal dari situs web yang valid.Dan itu memungkinkan mengunggah file berbahaya ke server situs web. Seluruh proses memasukkan file berbahaya dari luar server situs web dengan memanfaatkan kerentanan dalam plugin adalah Remote File Inclusion. Setelah file PHP berbahaya disimpan di server situs web, peretas dapat berkomunikasi dengannya untuk melakukan tindakan yang diinginkan.

Apa itu Serangan Eksekusi Kode Sewenang-wenang?

Sekarang kita tahu apa itu Remote File Inclusion dan Lokal, mari kita lanjutkan dan mencoba memahami apa itu Eksekusi Kode Arbitrer. Penyertaan File dan penyertaan kode arbitrer saling terkait satu sama lain. Dalam kasus Penyertaan File apa pun, tujuan peretas adalah mengeksekusi kode arbitrer di situs web. Mari kita kembali ke contoh Penyertaan File Lokal di mana peretas telah mengunggah hack.php di situs perguruan tinggi dan kemudian mengunggah control.php dengan bantuan hack.php.Ungkapan Eksekusi Kode Sewenang-wenang adalah deskripsi kemampuan peretas untuk mengeksekusi perintah apa pun pilihannya di situs web yang diretas.Setelah file PHP (hack.php dan control.php) ada di server situs web, peretas dapat mengeksekusi kode apa pun yang diinginkannya. Proses mengeksekusi kode apa pun dari file yang dia unggah ini disebut Eksekusi Kode Sewenang-wenang.
Peretasan itu rumit. Dalam posting ini, kami mencoba menjelaskannya dengan sederhana tetapi jika ada bagian yang tidak masuk akal bagi Anda, kami mengimbau pembaca untuk menulis kepada kami . Di posting berikutnya, kita membahas serangan hack umum lainnya di situs WordPress yang disebut Cross-Site Scripting (XSS). Lihatlah.