Teknik baru ditemui untuk mengeksploitasi kerentanan di SQLite

versi SQLite yang terdedah

The Penyelidik Check Point baru-baru ini mendedahkan dalam persidangan DEF dengan perinciannya teknik baru yang ditemui, ini digunakan pUntuk menyerang aplikasi yang menggunakan versi SQLite yang rentan.

Kaedah ini Check Point melihat fail pangkalan data sebagai peluang untuk mengintegrasikan senario eksploitasi kerentanan dalam pelbagai subsistem dalaman SQLite yang tidak dapat diakses untuk eksploitasi dahi. Para penyelidik juga mengembangkan teknik untuk mengeksploitasi kerentanan dengan mengekod eksploitasi dalam bentuk rentetan pertanyaan SELECT dalam pangkalan data SQLite, yang memungkinkan ASLR dihindari.

Mengenai kerentanan

Penyelidik Check Point memperincikan bahawa untuk serangan yang berjaya, penyerang mesti dapat mengubahsuai fail pangkalan data dari aplikasi yang diserang, yang membatasi kaedah menyerang aplikasi yang menggunakan pangkalan data SQLite sebagai format untuk transit dan memasukkan data.

Walaupun mereka juga mendedahkan bahawa kaedah itu juga dapat digunakan untuk memperluas akses tempatan yang telah diperoleh, sebagai contoh, untuk menyatukan pintu belakang tersembunyi dalam aplikasi yang digunakan, dan juga untuk mengelakkan penyelidik keselamatan semasa menganalisis perisian hasad.

Operasi setelah penyamaran fail dilakukan pada saat aplikasi melaksanakan permintaan PILIH pertama ke tabel dalam pangkalan data yang diubah.

Sebagai contoh, kemampuan menjalankan kod pada iOS ketika membuka buku alamat ditunjukkan, fail dengan pangkalan data «Buku Alamat.sqlitedb»Yang diubahsuai menggunakan kaedah yang dicadangkan.

Untuk serangan itu, kerentanan digunakan dalam fungsi fts3_tokenizer (CVE-2019-8602, kemampuan untuk mengurangi penunjuk), diperbaiki dalam kemas kini SQLite 2.28 April, bersama dengan kelemahan lain dalam pelaksanaan fungsi tetingkap.

Selain itu, menunjukkan penggunaan kaedah untuk penyitaan kawalan jauh pelayan backend dari penyerang yang ditulis dalam PHP, yang mengumpulkan kata laluan yang dipintas semasa operasi kod berbahaya (kata laluan yang dipintas dipindahkan dalam bentuk pangkalan data SQLite).

Kaedah serangan didasarkan pada penggunaan dua teknik, Query Hijacking dan Query Oriented Programming, yang memungkinkan masalah sewenang-wenang yang menyebabkan kerosakan memori pada mesin SQLite dieksploitasi.

Inti dari "Query hijacking" adalah untuk mengganti kandungan bidang "sql" dalam jadual perkhidmatan sqlite_master yang menentukan struktur pangkalan data. Medan yang ditentukan mengandungi blok DDL (Data Definition Language) yang digunakan untuk menggambarkan struktur objek dalam pangkalan data.

Penerangan ditetapkan menggunakan sintaks SQL biasa, iaitu. Konstruk "CREATE TABLE", yang dilakukan semasa inisialisasi pangkalan data (semasa pelaksanaan pertama fungsi sqlite3LocateTable) digunakan untuk membuat struktur dalaman yang berkaitan dengan jadual dalam memori.

Ideanya adalah sebagai hasil penggantian "CREATE TABLE" dan "CREATE VIEW, adalah mungkin untuk mengawal sebarang akses ke pangkalan data melalui definisi pandangannya.

Sebaliknya, dengan menggunakan perintah "CREATE VIEW", operasi "SELECT" dilampirkan ke meja, yang akan dipanggil sebagai ganti "CREATE TABLE" dan membolehkan penyerang mengakses pelbagai bahagian jurubahasa SQLite.

Selain itu, cara paling mudah untuk menyerang adalah dengan memanggil fungsi "load_extension", yang memungkinkan penyerang dapat memuat perpustakaan sewenang-wenang dengan ekstensi, tetapi fungsi ini dinonaktifkan secara lalai.

Untuk melakukan serangan di bawah kondisi kemampuan untuk melakukan operasi SELECT, teknik pengaturcaraan berorientasi pertanyaan diusulkan, yang memungkinkan mengeksploitasi masalah dalam SQLite yang menyebabkan kerosakan memori.

Teknik ini mengingatkan pada Pemrograman Berorientasikan Kembali (ROP), tetapi menggunakan potongan kode mesin yang tidak ada, tetapi dimasukkan ke dalam sekumpulan subkueri dalam PILIH untuk membangun rangkaian panggilan ("gadget").

Fuente: https://threatpost.com/


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.