Mbinu mpya ya kutumia udhaifu katika SQLite imeanzishwa

Watafiti kutoka Check Point kufunuliwa katika mkutano wa DEF CON, maelezo ya mbinu mpya ya kushambulia programu kwa kutumia matoleo hatarishi ya SQLite. Mbinu ya Check Point inazingatia faili za hifadhidata kama fursa ya kujumuisha matukio ya kutumia udhaifu katika mifumo midogo ya ndani ya SQLite ambayo haiwezi kutumiwa moja kwa moja. Watafiti pia wametayarisha mbinu ya kutumia udhaifu kwa kusimba unyonyaji katika mfumo wa msururu wa maswali CHAGUA katika hifadhidata ya SQLite, ambayo hukuruhusu kupita ASLR.

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. kuathirika katika utekelezaji wa kazi za dirisha. Kwa kuongezea, utumiaji wa njia ya kukamata udhibiti wa seva ya nyuma ya mshambulizi iliyoandikwa katika PHP, ambayo hukusanya nywila zilizoibiwa wakati wa utendakazi wa msimbo hasidi (nenosiri zilizozuiliwa zilipitishwa kwa njia ya hifadhidata ya SQLite).

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 (ROP, Utayarishaji wa Uelekezaji wa Kurejesha), lakini hutumia vijisehemu ambavyo havipo vya msimbo wa mashine kuunda msururu wa simu ("vifaa"), lakini huingiza katika seti ya hoja ndogo ndani ya SELECT.

Mbinu mpya ya kutumia udhaifu katika SQLite imeanzishwa

Mbinu mpya ya kutumia udhaifu katika SQLite imeanzishwa

Chanzo: opennet.ru

Kuongeza maoni