In nije technyk foar it eksploitearjen fan kwetsberens yn SQLite is yntrodusearre.

Undersikers fan Check Point ûntdutsen op 'e DEF CON-konferinsje, details fan in nije technyk foar it oanfallen fan applikaasjes mei kwetsbere ferzjes fan SQLite. De Check Point-metoade beskôget databankbestannen as in kâns om senario's te yntegrearjen foar it eksploitearjen fan kwetsberens yn ferskate ynterne SQLite-subsystemen dy't net direkt te eksploitearjen binne. Undersikers hawwe ek in technyk taret foar it eksploitearjen fan kwetsberens troch it kodearjen fan 'e eksploitaasje yn' e foarm fan in ketting fan SELECT-fragen yn 'e SQLite-database, wêrtroch jo ASLR kinne omgean.

Foar in suksesfolle oanfal is it nedich om de databankbestannen fan 'e oanfallen applikaasjes te feroarjen, wat de metoade beheint ta oanfallen op applikaasjes dy't de SQLite-database brûke as formaat foar transit- en ynfiergegevens. De metoade kin ek brûkt wurde om besteande lokale tagong út te wreidzjen, bygelyks om ferburgen efterdoarren te yntegrearjen yn brûkte applikaasjes, en ek om feiligensmeganismen te omgean by it analysearjen fan malware troch feiligensûndersikers. Operaasje nei triemferfanging wurdt útfierd op it momint dat de applikaasje de earste SELECT-query útfiert tsjin in tabel yn 'e wizige databank.

As foarbyld hawwe wy de mooglikheid oantoand om koade yn iOS út te fieren by it iepenjen fan in adresboek, it bestân mei de database "AddressBook.sqlitedb" waard wizige mei de foarstelde metoade. De oanfal brûkte in kwetsberens yn 'e fts3_tokenizer-funksje (CVE-2019-8602, pointer dereference-mooglikheid), fêst yn' e april SQLite 2.28-fernijing, tegearre mei in oar kwetsberens yn de útfiering fan finster funksjes. Dêrnjonken waard it gebrûk fan in metoade foar it op ôfstân gripen fan kontrôle oer de backend-tsjinner fan in oanfaller skreaun yn PHP, dy't wachtwurden sammelt dy't ûnderskept binne tidens de eksploitaasje fan kweade koade (de ûnderskepte wachtwurden waarden oerbrocht yn 'e foarm fan in SQLite-database).

De oanfalmetoade is basearre op it brûken fan twa techniken "Query Hijacking" en "Query Oriented Programming", dy't mooglik meitsje fan willekeurige problemen dy't liede ta ûnthâldkorrupsje yn 'e SQLite-motor. De essinsje fan "Query Hijacking" is it ferfangen fan de ynhâld fan it "sql" fjild yn 'e sqlite_master tsjinsttabel, dy't de struktuer fan' e databank bepaalt. It oantsjutte fjild befettet in DDL (Data Definition Language) blok dat wurdt brûkt om de struktuer fan objekten yn 'e databank te beskriuwen. De beskriuwing wurdt oantsjutte mei help fan standert SQL syntaksis, i.e. de "CREATE TABLE" konstruksje wurdt brûkt,
dat wurdt útfierd tidens it inisjalisaasjeproses fan de database (by de earste lansearring
sqlite3LocateTable funksjes foar it meitsjen fan tabel-relatearre ynterne struktueren yn it ûnthâld.

It idee is dat, as gefolch fan it ferfangen fan "CREATE TABLE" mei "CREATE VIEW", it mooglik wurdt om elke tagong ta de databank te kontrolearjen troch jo eigen werjefte te definiearjen. Mei it brûken fan "CREATE VIEW" is in "SELECT" operaasje bûn oan 'e tabel, dy't sil wurde neamd ynstee fan "CREATE TABLE" en kinne jo tagong krije ta ferskate dielen fan 'e SQLite-tolk. Dêrnei soe de ienfâldichste metoade fan oanfal wêze om de funksje "load_extension" te neamen, wêrtroch jo in willekeurige bibleteek kinne laden mei in útwreiding, mar dizze funksje is standert útskeakele.

Om in oanfal út te fieren as it mooglik is om de operaasje "SELECT" út te fieren, wurdt de technyk "Query Oriented Programming" foarsteld, wêrtroch it mooglik is om problemen yn SQLite te eksploitearjen dy't liede ta ûnthâldkorrupsje. De technyk docht tinken oan werom-rjochte programmearring (ROP.

In nije technyk foar it eksploitearjen fan kwetsberens yn SQLite is yntrodusearre.

In nije technyk foar it eksploitearjen fan kwetsberens yn SQLite is yntrodusearre.

Boarne: opennet.ru

Add a comment