Watafiti kutoka Check Point
Kwa shambulio lenye mafanikio, ni muhimu kuweza kurekebisha faili za hifadhidata za programu zilizoshambuliwa, ambazo huweka mipaka ya mbinu ya kushambulia programu zinazotumia hifadhidata ya SQLite kama umbizo la data ya upitishaji na ingizo. Mbinu hiyo pia inaweza kutumika kupanua ufikiaji uliopo wa ndani, kwa mfano, kuunganisha milango iliyofichwa kwenye programu zilizotumiwa, na pia kupita njia za usalama wakati wa kuchanganua programu hasidi na watafiti wa usalama. Uendeshaji baada ya uingizwaji wa faili unafanywa wakati programu inatekeleza hoja ya CHAGUA ya kwanza dhidi ya jedwali katika hifadhidata iliyobadilishwa.
Kama mfano, tulionyesha uwezo wa kutumia msimbo katika iOS wakati wa kufungua kitabu cha anwani, faili yenye hifadhidata ya "AddressBook.sqlitedb" ilirekebishwa kwa kutumia mbinu iliyopendekezwa. Shambulio hilo lilitumia uwezekano wa kuathiriwa katika chaguo za kukokotoa za fts3_tokenizer (CVE-2019-8602, uwezo wa kuacha kielekezi), iliyosasishwa katika sasisho la Aprili SQLite 2.28, pamoja na lingine.
Njia ya kushambulia inategemea matumizi ya mbinu mbili "Utekaji nyara wa Maswali" na "Upangaji wa Maswali ya Maswali", ambayo inaruhusu kutumia matatizo ya kiholela ambayo husababisha uharibifu wa kumbukumbu katika injini ya SQLite. Kiini cha "Query Hijacking" ni kuchukua nafasi ya maudhui ya sehemu ya "sql" katika jedwali la huduma la sqlite_master, ambalo huamua muundo wa hifadhidata. Sehemu iliyobainishwa ina kizuizi cha DDL (Lugha ya Ufafanuzi wa Data) inayotumiwa kuelezea muundo wa vitu kwenye hifadhidata. Maelezo yamebainishwa kwa kutumia syntax ya kawaida ya SQL, i.e. ujenzi wa "CREATE TABLE" hutumiwa,
ambayo inatekelezwa wakati wa mchakato wa uanzishaji wa hifadhidata (wakati wa uzinduzi wa kwanza
Vitendaji vya sqlite3LocateTable ili kuunda miundo ya ndani inayohusiana na jedwali kwenye kumbukumbu.
Wazo ni kwamba, kama matokeo ya kuchukua nafasi ya "CREATE TABLE" na "CREATE VIEW", inawezekana kudhibiti ufikiaji wowote wa hifadhidata kwa kufafanua maoni yako mwenyewe. Kwa kutumia "CREATE VIEW" operesheni ya "CHAGUA" inafungwa kwenye jedwali, ambalo litaitwa badala ya "CREATE TABLE" na hukuruhusu kufikia sehemu tofauti za mkalimani wa SQLite. Ifuatayo, njia rahisi zaidi ya kushambulia itakuwa kuita kazi ya "load_extension", ambayo inakuwezesha kupakia maktaba ya kiholela na ugani, lakini kazi hii imezimwa kwa default.
Ili kutekeleza shambulio wakati inawezekana kufanya operesheni ya "SELECT", mbinu ya "Query Oriented Programming" inapendekezwa, ambayo inafanya uwezekano wa kutumia matatizo katika SQLite ambayo husababisha uharibifu wa kumbukumbu. Mbinu hiyo ni ukumbusho wa programu inayolenga kurudi (
Chanzo: opennet.ru