Check Point-ийн судлаачид
Амжилттай халдлага хийхийн тулд халдлагад өртсөн програмуудын өгөгдлийн сангийн файлуудыг өөрчлөх чадвартай байх шаардлагатай бөгөөд энэ нь SQLite мэдээллийн баазыг дамжуулж, өгөгдөл оруулах формат болгон ашигладаг програмууд руу халдах аргыг хязгаарладаг. Энэ аргыг одоо байгаа орон нутгийн хандалтыг өргөжүүлэх, жишээлбэл, далд арын хаалгыг ашигласан програмуудад нэгтгэх, түүнчлэн аюулгүй байдлын судлаачид хортой програмыг шинжлэх үед аюулгүй байдлын механизмыг тойрч гарахад ашиглаж болно. Файлыг орлуулсны дараах үйлдлийг програм нь өөрчилсөн мэдээллийн сан дахь хүснэгтийн эсрэг эхний SELECT хайлтыг гүйцэтгэх үед хийгддэг.
Жишээлбэл, бид хаягийн дэвтэр нээхдээ iOS дээр код ажиллуулах чадварыг харуулсан бөгөөд "AddressBook.sqlitedb" мэдээллийн сантай файлыг санал болгож буй аргыг ашиглан өөрчилсөн. Энэхүү халдлага нь 3-р сарын SQLite 2019 шинэчлэлт дээр зассан fts8602_tokenizer функцийн (CVE-2.28-XNUMX, заагчийг хайх чадвар) сул талыг ашигласан бөгөөд өөр нэг
Халдлагын арга нь SQLite хөдөлгүүрт санах ойн эвдрэлд хүргэдэг дур зоргоороо асуудлыг ашиглах боломжийг олгодог "Асуулга хулгайлах" ба "Асуулгад чиглэсэн програмчлал" гэсэн хоёр аргыг ашиглахад суурилдаг. "Query Hijacking"-ийн мөн чанар нь мэдээллийн сангийн бүтцийг тодорхойлдог sqlite_master үйлчилгээний хүснэгт дэх "sql" талбарын агуулгыг орлуулах явдал юм. Заасан талбар нь өгөгдлийн сангийн объектын бүтцийг тодорхойлоход хэрэглэгддэг DDL (Data Definition Language) блокыг агуулна. Тайлбарыг стандарт SQL синтакс ашиглан зааж өгсөн болно, i.e. "CREATE TABLE" бүтцийг ашигласан,
Энэ нь мэдээллийн баазыг эхлүүлэх явцад (эхний эхлүүлэх үед
sqlite3LocateTable нь санах ойд хүснэгттэй холбоотой дотоод бүтцийг үүсгэх функцууд юм.
"ХҮСНЭГТ ҮЗҮҮЛЭХ" гэснийг "ХҮСНЭГТ ҮЗҮҮЛЭХ"-ээр сольсны үр дүнд мэдээллийн санд хандах хандалтыг өөрийн үзэмжээр тодорхойлон удирдах боломжтой болно гэсэн санаа юм. "CREATE VIEW"-ийг ашигласнаар "СОНГОХ" үйлдлийг хүснэгтэд холбох бөгөөд энэ нь "CREATE TABLE"-ын оронд дуудагдах бөгөөд SQLite орчуулагчийн өөр өөр хэсгүүдэд хандах боломжийг олгоно. Дараа нь халдлагын хамгийн энгийн арга бол "load_extension" функцийг дуудах бөгөөд энэ нь танд өргөтгөл бүхий дурын номын санг ачаалах боломжийг олгодог боловч энэ функц анхдагчаар идэвхгүй байдаг.
"СОНГОХ" үйлдлийг гүйцэтгэх боломжтой үед халдлага хийхийн тулд SQLite-д санах ойн эвдрэлд хүргэдэг асуудлуудыг ашиглах боломжийг олгодог "Асуулгад чиглэсэн програмчлал" техникийг санал болгож байна. Энэхүү техник нь буцах хандлагатай програмчлалыг санагдуулдаг (
Эх сурвалж: opennet.ru