Ua hoʻolauna ʻia kahi ʻenehana hou no ka hoʻohana ʻana i nā nāwaliwali ma SQLite.

Nā mea noiʻi mai Check Point wehe ʻia ma ka ʻaha kūkā DEF CON, nā kikoʻī o kahi ʻenehana hou no ka hoʻouka ʻana i nā noi me ka hoʻohana ʻana i nā mana palupalu o SQLite. Noʻonoʻo ke ala Check Point i nā faila waihona he manawa kūpono e hoʻohui i nā hiʻohiʻona no ka hoʻohana ʻana i nā nāwaliwali i loko o nā ʻōnaehana SQLite kūloko i hiki ʻole ke hoʻohana pono ʻia. Ua hoʻomākaukau pū nā mea noiʻi i kahi ʻenehana no ka hoʻohana ʻana i nā nāwaliwali ma o ka hoʻopili ʻana i ka hoʻohana ʻana ma ke ʻano o kahi kaulahao o nā nīnau SELECT i ka waihona SQLite, e hiki ai iā ʻoe ke kāpae i ka ASLR.

No ka hoʻouka kaua lanakila, pono e hiki ke hoʻololi i nā faila waihona o nā noi i hoʻouka ʻia, e kaupalena ana i ke ʻano o ka hoʻouka ʻana i nā noi e hoʻohana ana i ka waihona SQLite ma ke ʻano he ʻano no ka transit a me ka ʻikepili hoʻokomo. Hiki ke hoʻohana ʻia ke ʻano no ka hoʻonui ʻana i ke komo kūloko i kēia manawa, no ka laʻana, e hoʻohui i nā puka huna huna i loko o nā noi i hoʻohana ʻia, a me ke kāpae ʻana i nā mīkini palekana i ka wā e nānā ana i ka malware e nā mea noiʻi palekana. Hana ʻia ka hana ma hope o ka hoʻololi ʻana i nā faila i ka manawa e hoʻokō ai ka noi i ka nīnau SELECT mua e kūʻē i kahi papa i ka waihona i hoʻololi ʻia.

Ma keʻano he laʻana, ua hōʻike mākou i ka hiki ke holo i ka code ma iOS i ka wā e wehe ai i kahi puke helu wahi, ua hoʻololi ʻia ka faila me ka waihona "AddressBook.sqlitedb" me ka hoʻohana ʻana i ke ʻano i manaʻo ʻia. Ua hoʻohana ka hoʻouka ʻana i kahi nāwaliwali i ka hana fts3_tokenizer (CVE-2019-8602, hiki ke kuhikuhi i ka pointer), i hoʻopaʻa ʻia i ka hoʻoponopono ʻo April SQLite 2.28, me kekahi palupalu i ka hoʻokō ʻana i nā hana pukaaniani. Eia kekahi, ua hōʻike ʻia ka hoʻohana ʻana i kahi ala no ka hopu mamao ʻana i ka server backend o ka mea hoʻouka kaua i kākau ʻia ma PHP, ka mea e hōʻiliʻili ai i nā huaʻōlelo i hoʻopaʻa ʻia i ka wā o ka hana ʻana o nā code malicious (ua hoʻouna ʻia nā ʻōlelo huna i ke ʻano o kahi waihona SQLite).

Hoʻokumu ʻia ke ʻano hoʻouka kaua ma ka hoʻohana ʻana i ʻelua mau ʻenehana "Query Hijacking" a me "Query Oriented Programming", e ʻae ai i ka hoʻohana ʻana i nā pilikia kūʻokoʻa e alakaʻi ai i ka palaho hoʻomanaʻo i ka mīkini SQLite. ʻO ke kumu o ka "Query Hijacking" e hoʻololi i nā mea o ka "sql" kahua ma ka papa lawelawe sqlite_master, kahi e hoʻoholo ai i ke ʻano o ka waihona. Aia i loko o ke kahua i kuhikuhi ʻia kahi poloka DDL (Data Definition Language) i hoʻohana ʻia e wehewehe i ke ʻano o nā mea i loko o ka waihona. Hōʻike ʻia ka wehewehe me ka hoʻohana ʻana i ka syntax SQL maʻamau, ʻo ia hoʻi. hoʻohana ʻia ka hana "CREATE TABLE",
i hana ʻia i ka wā o ka hoʻomaka ʻana o ka waihona (i ka wā o ka hoʻomaka mua
sqlite3LocateTable hana e hana i nā hale pili pili i ka papaʻaina i ka hoʻomanaʻo.

ʻO ka manaʻo, ʻo ia ka hopena o ka hoʻololi ʻana i ka "CREATE TABLE" me ka "CREATE VIEW", hiki iā ia ke hoʻomalu i kekahi komo i ka waihona ma ka wehewehe ʻana i kāu ʻike ponoʻī. Ke hoʻohana nei i ka "CREATE VIEW" kahi hana "SELECT" i hoʻopaʻa ʻia i ka papaʻaina, e kapa ʻia ma kahi o "CREATE TABLE" a hiki iā ʻoe ke komo i nā ʻāpana like ʻole o ka unuhi ʻōlelo SQLite. ʻO ka mea aʻe, ʻo ke ala maʻalahi o ka hoʻouka ʻana ʻo ia ke kāhea ʻana i ka hana "load_extension", e hiki ai iā ʻoe ke hoʻouka i kahi hale waihona puke me ka hoʻonui, akā ua pio kēia hana ma ka paʻamau.

No ka hoʻokō ʻana i kahi hoʻouka ʻana inā hiki ke hana i ka hana "SELECT", ua noi ʻia ka ʻenehana "Query Oriented Programming", e hiki ai ke hoʻohana i nā pilikia ma SQLite e alakaʻi ai i ka palaho hoʻomanaʻo. Hoʻomanaʻo ka ʻenehana i ka hoʻonohonoho hoʻihoʻi ʻana (ROPAHA, Return-Oriented Programming), akā hoʻohana ʻaʻole i nā snippets i loaʻa i ka helu mīkini e kūkulu i kahi kaulahao o nā kelepona ("nā gadget"), akā hoʻokomo i loko o kahi pūʻulu subqueries i loko o SELECT.

Ua hoʻolauna ʻia kahi ʻenehana hou no ka hoʻohana ʻana i nā nāwaliwali ma SQLite.

Ua hoʻolauna ʻia kahi ʻenehana hou no ka hoʻohana ʻana i nā nāwaliwali ma SQLite.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka