Memahami Kerentanan Pada Remote Code Execution Drupal core (SA-CORE-2018–002)
Pada kesempatan kali ini saya akan sedikit membahas tentang permasalahan, bugs/vulnerability yang drupal umumkan pada 28 Maret 2018 sebagai sebuah keretanan yang sangat kritis. Kerentanan tersebut sekarang ditandai sebagai SA-CORE-2018-002. Kerentanan ini memungkinkan seseorang untuk melakukan eksekusi kode jarak jauh menggunakan inti Drupal
Informasi Dasar
Drupal core mengumumkan penasehat keamanan untuk kerentanan yang dinilai sebagai "Sangat Kritis" - peringkat tertinggi yang dimiliki Drupal pada sistem peringkat risiko keamanan mereka, yang didasarkan pada Sistem Penilaian Penyalahgunaan Umum NIST (NISTIR 7864). Jenis kerentanan adalah masalah Eksekusi Kode Remote yang tidak diautentikasi.Kerentanan ini mempengaruhi inti Drupal dan mempengaruhi versi 7.x, 8.3.x, 8.4.x dan 8.5.x dari Drupal.
Eksploitasi yang sukses akan mengarah pada kompromi potensial dari aplikasi web dan mungkin sistem operasi yang mendasarinya juga.
Apa yang ada di patch?
Melihat sekilas pada 7,58 cabang Drupal yang memperbaiki masalah ini menunjukkan bahwa 1 file baru telah ditambahkan dan file yang sudah ada sebelumnya telah diperbarui.
Direktori "/ termasuk" berisi beberapa file .inc yang dipanggil ketika Drupal diakses untuk mengatur lingkungan server, variabel sisi server dan penanganan data yang diberikan pengguna di server.
Versi rilis baru, 7.58, memiliki file baru bernama 'request-sanitizer.inc' yang berisi fungsi untuk membersihkan input pengguna yang disediakan melalui GET, POST, atau cookie.
Git berkomitmen untuk patch ini di https://github.com/drupal/drupal/commit/19b69fe8af55d8fac34a50563a238911b75f08f7 dengan file baru inti / lib / Drupal / Core / Security / RequestSanitizer.php yang berisi kode untuk membersihkan input pengguna.
Fungsi "sanitasi" menerima parameter yang dikirim melalui GET, POST, dan cookie, dan menggantikan permintaan dengan versi yang disanitasi yang diperoleh dari fungsi 'stripDangerousValues'.
Fungsi utama yang melakukan pembersihan adalah 'stripDangerousValues' di baris 84. Fungsi ini memeriksa apakah input adalah larik dan jika kemudian memeriksa apakah nama kunci parameter masing-masing dimulai dengan #. Pada dasarnya, nilai kembalian akan menghapus # dan mengembalikan array input kembali ke fungsi panggilan.
Masalah mendasar adalah bahwa inti Drupal (seperti framework lainnya) menerima parameter permintaan sebagai objek larik. Seorang pengguna dapat mengirimkan objek array ke aplikasi dengan keyname berisi payload yang Drupal akan proses tanpa sanitasi.
Eksploitasi vektor?
Mengingat bahwa inti Drupal adalah open source dan diff tersedia, saya berharap eksploit akan segera keluar, yang akan meningkatkan rating tingkat keparahan masalah ini ke 25/25 pada Sistem Penilaian Penyalahgunaan Umum NIST. Melihat patch, eksploit akan terlihat seperti:
index.php?page['#payload']=home.php
Di antara para pengembang Drupal, diketahui bahwa Drupal memungkinkan penggunaan hash di depan properti untuk membedakan antara properti dan elemen anak HTML saat menggunakan API Formulir. Misalnya, $ form ['list'] ['element'] adalah elemen anak, sedangkan $ form ['list'] ['# title'] adalah properti.
Drupal membentuk referensi API memiliki beberapa contoh yang mungkin dapat digunakan untuk membuat exploit - https: //api.drupal.org/api/drupal/developer%21topics%21forms_api_reference.html/7.x
Kesimpulan :
Saran bagi para pengembang atau pengelola situs Drupal adalah untuk sesegara mungkin melakukan pembaharuan atau melakukan update drupalSumber - sumber :
- https://www.drupal.org/sa-core-2018-002
- https://groups.drupal.org/security/faq-2018-002
Heem... Pokmen sesuatu yang terkait dengan drupal saya hanya merespon dengan kata "OK"....
ReplyDeleteKarna ini memang di luar keahlihan saya Mas... Like untuk post nya🍸🌹🌹🍸🌹🌹🍸
🌹🌹🌹🌹🌹🌹🌹
🌹🌹🌹🌹🌹🌹🌹
🍸🌹🌹🌹🌹🌹🍸
🍸🍸🌹🌹🌹🍸🍸
🍸🍸🍸🌹🍸🍸🍸
🍸🍸🍸🌹🍸🍸🍸
🍸🎁😊❤☺🎁🍸
Main kesini dapat wawasan penting drupal .. dulu pernah bikin theme drupal tapi buat sehari saja tidak selesai disamping tidak compatible dengan versi selanjutnya kita harus bisa membuat theme yang tidak lelet dan berat.
ReplyDelete