Téhnik anyar pikeun ngamangpaatkeun kerentanan dina SQLite parantos diwanohkeun.

Peneliti ti Check Point kabongkar dina konperénsi DEF CON, rinci ngeunaan téknik anyar pikeun nyerang aplikasi nganggo versi SQLite anu rentan. Metodeu Check Point nganggap file database salaku kasempetan pikeun ngahijikeun skenario pikeun ngamangpaatkeun kerentanan dina sagala rupa subsistem SQLite internal anu henteu langsung dieksploitasi. Panaliti ogé parantos nyiapkeun téknik pikeun ngamangpaatkeun kerentanan ku cara ngodekeun eksploitasi dina bentuk ranté patarosan SELECT dina pangkalan data SQLite, anu ngamungkinkeun anjeun ngaliwat ASLR.

Pikeun serangan suksés, perlu pikeun bisa ngaropéa file database tina aplikasi diserang, nu watesan metoda pikeun serangan dina aplikasi nu ngagunakeun database SQLite salaku format keur transit jeung data input. Métode ogé tiasa dianggo pikeun ngalegaan aksés lokal anu tos aya, contona, pikeun ngahijikeun panto tukang anu disumputkeun kana aplikasi anu dianggo, ogé pikeun ngaliwat mékanisme kaamanan nalika nganalisa malware ku peneliti kaamanan. Operasi sanggeus substitusi file dilumangsungkeun dina momen aplikasi executes query PILIH munggaran ngalawan tabel dina database dirobah.

Salaku conto, kami nunjukkeun kamampuan pikeun ngajalankeun kode dina ios nalika muka buku alamat, file sareng database "AddressBook.sqlitedb" dirobih nganggo metode anu diusulkeun. Serangan éta ngagunakeun kerentanan dina fungsi fts3_tokenizer (CVE-2019-8602, kamampuan dereference pointer), dibereskeun dina update April SQLite 2.28, sareng anu sanésna. karentanan dina palaksanaan fungsi jandela. Salaku tambahan, pamakean metode pikeun ngarebut kadali jauh tina server backend panyerang anu ditulis dina PHP, anu ngumpulkeun kecap konci anu disadap nalika operasi kode jahat (sandi anu disadap dikirimkeun dina bentuk database SQLite), nunjukkeun.

Metoda serangan dumasar kana pamakéan dua téhnik "Query Hijacking" jeung "Query Oriented Programming", nu ngidinan exploiting masalah sawenang nu ngakibatkeun korupsi memori dina mesin SQLite. Hakekat "Query Hijacking" nyaéta ngaganti eusi widang "sql" dina tabel layanan sqlite_master, nu nangtukeun struktur database. Widang anu ditangtukeun ngandung blok DDL (Data Definition Language) anu dianggo pikeun ngajelaskeun struktur objék dina pangkalan data. Pedaran ieu dieusian maké sintaksis SQL baku, i.e. konstruksi "CREATE TABLE" dipaké,
nu dieksekusi salila prosés initialization database (salila peluncuran munggaran
sqlite3LocateTable fungsi pikeun nyieun struktur internal nu patali tabel dina mémori.

Gagasanna nyaéta, salaku hasil tina ngagentos "JIEUN TABEL" sareng "JIEUN VIEW", janten tiasa ngontrol aksés kana pangkalan data ku netepkeun pandangan anjeun nyalira. Ngagunakeun "Jieun Témbongkeun" a "PILIH" operasi kabeungkeut kana tabél, nu bakal disebut tinimbang "Jieun tabel" tur ngidinan Anjeun pikeun ngakses bagian béda tina juru SQLite. Salajengna, metodeu serangan pangbasajanna nyaéta nyauran fungsi "load_extension", anu ngamungkinkeun anjeun pikeun ngamuat perpustakaan sawenang kalayan ekstensi, tapi fungsi ieu ditumpurkeun sacara standar.

Pikeun ngalaksanakeun serangan nalika kasebut nyaéta dimungkinkeun pikeun ngalakukeun operasi "PILIH", téhnik "Query Berorientasi Programming" diusulkeun, nu ngamungkinkeun pikeun mangpaatkeun masalah dina SQLite nu ngakibatkeun korupsi memori. Téhnik ieu ngingetkeun pemrograman berorientasi balik (ROP, Balik-Berorientasi Programming), tapi ngagunakeun henteu aya snippét kode mesin pikeun ngawangun ranté telepon ("gadget"), tapi inserts dina susunan subqueries jero PILIH.

Téhnik anyar pikeun ngamangpaatkeun kerentanan dina SQLite parantos diwanohkeun.

Téhnik anyar pikeun ngamangpaatkeun kerentanan dina SQLite parantos diwanohkeun.

sumber: opennet.ru

Tambahkeun komentar