Teknik baharu untuk mengeksploitasi kelemahan dalam SQLite telah diperkenalkan.

Penyelidik dari Check Point terbongkar pada persidangan DEF CON, butiran teknik baharu untuk menyerang aplikasi menggunakan versi SQLite yang mudah terjejas. Kaedah Check Point menganggap fail pangkalan data sebagai peluang untuk menyepadukan senario untuk mengeksploitasi kelemahan dalam pelbagai subsistem SQLite dalaman yang tidak boleh dieksploitasi secara langsung. Penyelidik juga telah menyediakan teknik untuk mengeksploitasi kelemahan dengan mengekodkan eksploit dalam bentuk rangkaian pertanyaan SELECT dalam pangkalan data SQLite, yang membolehkan anda memintas ASLR.

Untuk serangan yang berjaya, adalah perlu untuk dapat mengubah suai fail pangkalan data aplikasi yang diserang, yang mengehadkan kaedah untuk menyerang aplikasi yang menggunakan pangkalan data SQLite sebagai format untuk transit dan data input. Kaedah ini juga boleh digunakan untuk mengembangkan akses tempatan sedia ada, contohnya, untuk menyepadukan pintu belakang tersembunyi ke dalam aplikasi terpakai, serta memintas mekanisme keselamatan apabila menganalisis perisian hasad oleh penyelidik keselamatan. Operasi selepas penggantian fail dijalankan pada masa ini aplikasi melaksanakan pertanyaan SELECT pertama terhadap jadual dalam pangkalan data yang diubah suai.

Sebagai contoh, kami menunjukkan keupayaan untuk menjalankan kod dalam iOS apabila membuka buku alamat, fail dengan pangkalan data "AddressBook.sqlitedb" telah diubah suai menggunakan kaedah yang dicadangkan. Serangan itu menggunakan kelemahan dalam fungsi fts3_tokenizer (CVE-2019-8602, keupayaan nyahrujuk penunjuk), diperbaiki dalam kemas kini April SQLite 2.28, bersama-sama dengan yang lain kelemahan dalam pelaksanaan fungsi tetingkap. Di samping itu, penggunaan kaedah untuk merampas kawalan jauh ke atas pelayan belakang penyerang yang ditulis dalam PHP, yang mengumpul kata laluan yang dipintas semasa operasi kod hasad (kata laluan yang dipintas dihantar dalam bentuk pangkalan data SQLite), telah ditunjukkan.

Kaedah serangan adalah berdasarkan penggunaan dua teknik "Query Hijacking" dan "Query Oriented Programming", yang membolehkan mengeksploitasi masalah sewenang-wenangnya yang membawa kepada kerosakan memori dalam enjin SQLite. Intipati “Query Hijacking” adalah untuk menggantikan kandungan medan “sql” dalam jadual perkhidmatan sqlite_master, yang menentukan struktur pangkalan data. Medan yang ditentukan mengandungi blok DDL (Data Definition Language) yang digunakan untuk menerangkan struktur objek dalam pangkalan data. Penerangan ditentukan menggunakan sintaks SQL standard, i.e. pembinaan "CREATE TABLE" digunakan,
yang dilaksanakan semasa proses permulaan pangkalan data (semasa pelancaran pertama
sqlite3LocateTable berfungsi untuk mencipta struktur dalaman berkaitan jadual dalam ingatan.

Ideanya ialah, sebagai hasil daripada menggantikan "CREATE TABLE" dengan "CREATE VIEW", ia menjadi mungkin untuk mengawal sebarang akses kepada pangkalan data dengan mentakrifkan pandangan anda sendiri. Menggunakan "CREATE VIEW" operasi "SELECT" terikat pada jadual, yang akan dipanggil dan bukannya "CREATE JADUAL" dan membolehkan anda mengakses bahagian berlainan penterjemah SQLite. Seterusnya, kaedah serangan yang paling mudah ialah memanggil fungsi "load_extension", yang membolehkan anda memuatkan perpustakaan sewenang-wenangnya dengan sambungan, tetapi fungsi ini dilumpuhkan secara lalai.

Untuk menjalankan serangan apabila boleh melakukan operasi "PILIH", teknik "Pemrograman Berorientasikan Pertanyaan" dicadangkan, yang memungkinkan untuk mengeksploitasi masalah dalam SQLite yang membawa kepada kerosakan memori. Teknik ini mengingatkan pengaturcaraan berorientasikan kembali (ROP, Pengaturcaraan Berorientasikan Kembali), tetapi tidak menggunakan coretan kod mesin sedia ada untuk membina rangkaian panggilan ("alat"), tetapi memasukkan dalam set subkueri dalam SELECT.

 Teknik baharu untuk mengeksploitasi kelemahan dalam SQLite telah diperkenalkan.

 Teknik baharu untuk mengeksploitasi kelemahan dalam SQLite telah diperkenalkan.

Sumber: opennet.ru

Tambah komen