SQLite haavatavuste ärakasutamiseks avastati uus tehnika

SQLite haavatavad versioonid

osa Check Pointi uurijad paljastasid hiljuti DEF-i konverentsil üksikasjadega uue tehnika avastamiseks, seda kasutatakse lkSQLite haavatavaid versioone kasutavate rakenduste ründamiseks.

Meetod Check Point näeb andmebaasifailides võimalust haavatavuse ärakasutamise stsenaariumide integreerimiseks erinevates sisemistes SQLite'i alamsüsteemides, millele pole otsmiku ekspluateerimiseks juurdepääsetav. Teadlased töötasid välja ka haavatavuste ärakasutamise meetodi, kasutades SQLite andmebaasis SELECT-päringute stringi kujul kodeerimist, mis võimaldab ASLR-i vältida.

Haavatavuse kohta

Kontrollpunkti uurijad täpsustavad seda edukaks rünnakuks peab ründaja suutma muuta rünnatud rakenduste andmebaasifaile, mis piirab selliste rakenduste ründamise meetodit, mis kasutavad transiidi ja sisendandmete vorminguna SQLite andmebaase.

Küll nad avaldavad ka, et meetodit saab kasutada ka juba saadud kohaliku juurdepääsu laiendamiseks, näiteks integreerida peidetud tagauksed kasutatavatesse rakendustesse, samuti vältida turvauurijaid pahavara analüüsimisel.

Toiming pärast failina esinemist teostatakse ajal, mil rakendus täidab esimese SELECT-päringu muudetud andmebaasis olevale tabelile.

Näiteks demonstreeriti võimalust aadressiraamatu avamisel iOS-is koodi käivitada, andmebaasiga fail «Aadressiraamat.sqlitedb»Mida muudeti pakutud meetodi abil.

Rünnaku jaoks funktsiooni fts3_tokenizer kasutati haavatavust (CVE-2019-8602, oskus viidata kursorile), mis on fikseeritud aprillikuu SQLite 2.28 värskenduses koos teise aknafunktsioonide rakendamise haavatavusega.

Lisaks demonstreerib meetodi kasutamist PHP-s kirjutatud ründajatelt taustaprogrammi kaugjuhtimiseks, mis kogub pealtkuulatud paroole pahatahtliku koodi toimimise ajal (kinni püütud paroolid edastati SQLite andmebaasi kujul).

Rünnakumeetod põhineb kahe tehnika, Query Hijacking ja Query Oriented Programming, kasutamisel, mis võimaldavad ära kasutada meelevaldseid probleeme, mis põhjustavad SQLite mootori mälurikkumise.

„Päringu kaaperdamise” põhiolemus on andmebaasi struktuuri defineeriva teenustetabeli sqlite_master välja „sql” sisu asendamine. Määratud väli sisaldab DDL (Data Definition Language) plokki, mida kasutatakse andmebaasis olevate objektide struktuuri kirjeldamiseks.

Kirjeldus määratakse tavalise SQL-i süntaksiga, st. Konstruktsiooni "CREATE TABLE", mis viiakse läbi andmebaasi initsialiseerimise ajal (funktsiooni sqlite3LocateTable esimese käivitamise ajal), kasutatakse mäluga tabeliga seotud sisemiste struktuuride loomiseks.

Idee seisneb selles, et asendage sõnad "CREATE TABLE" ja "CREATE VIEW, on andmebaasi vaadet määratledes võimalik kontrollida mis tahes juurdepääsu andmebaasile.

Teisalt, kasutades käsku "CREATE VIEW", lisatakse tabelile toiming "SELECT", mida kutsutakse "CREATE TABLE" asemel ja mis võimaldab ründajal pääseda juurde SQLite tõlgi erinevatele osadele.

Lisaks sellele on lihtsaim viis rünnata funktsiooni "load_extension" kutsumine, mis võimaldab ründajal suvalise laiendiga teeki laadida, kuid see funktsioon on vaikimisi keelatud.

Rünnaku sooritamiseks SELECT-toimingu sooritamise võimaluse tingimustes pakuti välja päringule orienteeritud programmeerimistehnika, mis võimaldab SQLite'is ära kasutada probleeme, mis viivad mälu rikkumiseni.

See tehnika tuletab meelde tagasipöörduvat programmeerimist (ROP), kuid kasutab olematuid masinakoodilõike, kuid sisestatakse kõneahela ("vidinate") loomiseks SELECT-i alampäringute hulka.

allikas: https://threatpost.com/


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutav: AB Internet Networks 2008 SL
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.