Membaca di https://www.drupal.org/node/2357241 dan rincian teknis di https://www.drupal.org/SA-CORE-2014-005 , serta tambalan aktual yang sederhana:
diff --git a/includes/database/database.inc b/includes/database/database.inc
index f78098b..01b6385 100644
--- a/includes/database/database.inc
+++ b/includes/database/database.inc
@@ -736,7 +736,7 @@ abstract class DatabaseConnection extends PDO {
// to expand it out into a comma-delimited set of placeholders.
foreach (array_filter($args, 'is_array') as $key => $data) {
$new_keys = array();
- foreach ($data as $i => $value) {
+ foreach (array_values($data) as $i => $value) {
// This assumes that there are no other placeholders that use the same
// name. For example, if the array placeholder is defined as :example
// and there is already an :example_2 placeholder, this will generate
Saya ingin tahu permintaan macam apa yang dapat dibuat yang memanfaatkan exploit ini?
database.inc
file?database.inc
dari tambalan di atas (atau dengan tangan, ini jelas merupakan perubahan kecil), tetapi saya juga merekomendasikan untuk menambal Drupal inti Anda secara keseluruhan.Jawaban:
Perusahaan yang menemukan bug memiliki beberapa contoh pada Advisory 01/2014: Drupal - pre Auth SQL Injection Vulnerability :
Ekstrak:
sumber
The Problem occurs, if the array has keys, which are no integers
- ini dan contoh kueri cukup membantu dalam memahami ini.Apa yang terjadi dengan 7.32 Dengan memeriksa modul pengujian. Anda dapat melihat tes berikut ditambahkan ke 7.32;
Ini harus memberikan beberapa wawasan lebih lanjut tentang cara menyusun serangan.
Bukti Konsep Sejak lebih dari cukup waktu telah berlalu dan ada banyak PoC di alam bebas.
Poc # 1 - PHP
Poc # 2 Python - http://pastebin.com/nDwLFV3v
Berikut adalah blog yang memiliki rincian yang baik: http://www.volexity.com/blog/?p=83
sumber
Para peneliti yang menemukan bug memiliki bukti konsep. Yang lain telah mengembangkan bukti konsep juga. Namun, mereka sengaja tidak mempostingnya untuk mengurangi kemungkinan bahwa hal itu akan dieksploitasi secara luas. Kita harus menghormati penelitian itu dan menahan diri dan tidak mengirim contoh di sini.
Setelah beberapa waktu berlalu dan situs ditingkatkan, maka akan sangat menarik, dari perspektif akademis, untuk meninjau kode serangan proof-of-concept. Sampai saat itu, itu adalah risiko yang tidak perlu dan rebut perhatian.
Kode dalam penasehat SektioinEins bukanlah contoh yang dikembangkan sepenuhnya tentang bagaimana mengeksploitasinya. Mereka merinci kelemahannya, tetapi tidak secara tepat mengidentifikasi bagaimana sebenarnya mengeksploitasi masalah tersebut.
Sekarang sudah beberapa minggu sejak masalah ini dirilis dan SektionEins telah memposting beberapa pembuktian konsep di blog mereka . Ini cukup menarik dibandingkan dengan banyak bukti-konsep lain yang telah dikembangkan sejak mereka meninggalkan sangat sedikit jejak aktivitas mereka (misalnya tidak ada dalam tabel menu_router).
sumber
Saya dapat mengonfirmasi, bahwa kerentanan ini akan berfungsi pada setiap Drupal 7.31 dan situs yang lebih rendah, tidak masalah modul mana yang aktif. Setiap bentuk drupal dapat digunakan untuk mengeksploitasi kerentanan ini.
Eksploitasi cukup sederhana, jadi PoC sudah keluar di alam liar. Saya dapat menyerang server sendiri dan mengubah kata sandi pengguna sebagai pengguna anonim di instalasi Drupal yang bersih, tetapi kemungkinannya tidak terbatas.
Bug ini diketahui hampir 1 tahun yang lalu via https://www.drupal.org/node/2146839 tetapi tidak seorang pun dari Tim Keamanan Inti Drupal merespons.
sumber
#
di depan "keamanan" membatasi seseorang untuk tidak melihatnya, atau mungkin ada terlalu banyak masalah dalam antrian. Masih mengejutkan bahwa tidak ada yang menanggapinya.Saya bertanya-tanya bagaimana ini bisa dieksploitasi dan berapa banyak waktu dan upaya yang diperlukan? Oleh karena itu saya memutuskan untuk menginstal versi Drupal 7 yang lebih lama di localhost saya dan merekayasa ulang bug ini. Apa yang saya temukan adalah bug mengejutkan yang memberi siapa pun dengan pengetahuan dasar tentang HTML / SQL akses penuh ke situs Drupal Anda.
Saya berhasil mengeksekusi injeksi SQL ke Drupal 7 menggunakan pengguna anonim dalam waktu kurang dari 30 menit untuk mencoba!
http://www.zoubi.me/blog/drupageddon-sa-core-2014-005-drupal-7-sql-injection-exploit-demo
CATATAN: Ini masih tidak memungkinkan Anda untuk masuk karena Drupal menggunakan SHA512 dengan garam sehingga tidak mungkin untuk benar-benar masuk. Sengaja saya tidak memasukkan kode di sini, tetapi jelas siapa pun yang memiliki sedikit pengetahuan Drupal akan tahu cara mengatasi ini dan membuat kueri yang akan memberi Anda akses penuh!
Ini membuka pertanyaan tentang seberapa aman Drupal dan siapa yang bertanggung jawab untuk hal seperti ini? Rupanya bug ini diketahui lebih dari setahun ( https://www.drupal.org/node/2146839 ), tetapi tidak ada yang tidak bereaksi pada Drupal.org. Sengaja atau sengaja? :)
sumber
Ini adalah perbaikan dari kerentanan injeksi SQL di mana pernyataan SQL berbahaya dimasukkan ke dalam bidang entri untuk dieksekusi dan yang dapat menyebabkan misalnya untuk melepaskan konten database. Perbaikan ini penting untuk diterapkan sesegera mungkin terutama karena kerentanan ini dapat dimanfaatkan oleh pengguna anonim.
Jika Anda tidak dapat segera memperbarui tim keamanan, Anda dapat menerapkan tambalan ini yang akan memberikan perlindungan yang sama hingga Anda dapat melakukan pemutakhiran penuh 1 . Juga tim keamanan telah menyiapkan beberapa FAQ terkait masalah ini. Menempatkan situs Anda dalam mode pemeliharaan tidak akan membantu dan harap bersihkan cache setelah menerapkan pembaruan atau pastikan Anda menggunakan 7.32.
Juga, Anda harus memeriksa apakah situs Anda belum disusupi. Ada beberapa situs yang sudah melaporkan masalah. Ini dia satu posting blog yang menyarankan bagaimana Anda dapat memeriksa Memperbarui ke Drupal 7.32 tidak cukup, situs Anda mungkin sudah diretas
Saya menerapkan perbaikan pada 15 Oktober dan situs saya telah melaporkan seseorang yang mencoba mengeksploitasi kerentanan
sumber