Истраживачи из Цхецк Поинт-а
За успешан напад, неопходно је да будете у могућности да модификујете датотеке базе података нападнутих апликација, што ограничава метод на нападе на апликације које користе СКЛите базу података као формат за транзит и улазне податке. Метода се такође може користити за проширење постојећег локалног приступа, на пример, за интегрисање скривених бацкдоор-а у коришћене апликације, као и за заобилажење безбедносних механизама када истраживачи безбедности анализирају малвер. Операција након замене датотеке се спроводи у тренутку када апликација изврши први СЕЛЕЦТ упит према табели у модификованој бази података.
Као пример, демонстрирали смо могућност покретања кода у иОС-у приликом отварања адресара, фајл са базом података „АддрессБоок.склитедб” је модификован коришћењем предложеног метода. Напад је користио рањивост у функцији фтс3_токенизер (ЦВЕ-2019-8602, могућност дереференцирања показивача), поправљену у априлском ажурирању СКЛите 2.28, заједно са још једним
Метода напада је заснована на употреби две технике „Отмица упита“ и „Програмирање оријентисано на упите“, које омогућавају искоришћавање произвољних проблема који доводе до оштећења меморије у СКЛите машини. Суштина „Отете упита“ је да се замени садржај поља „скл“ у табели услуге склите_мастер, која одређује структуру базе података. Наведено поље садржи ДДЛ (Језик дефиниције података) блок који се користи за описивање структуре објеката у бази података. Опис је специфициран коришћењем стандардне СКЛ синтаксе, тј. користи се конструкција „ЦРЕАТЕ ТАБЛЕ“,
који се извршава током процеса иницијализације базе података (током првог покретања
склите3ЛоцатеТабле функције за креирање унутрашњих структура повезаних са табелама у меморији.
Идеја је да, као резултат замене „ЦРЕАТЕ ТАБЛЕ“ са „ЦРЕАТЕ ВИЕВ“, постане могуће контролисати сваки приступ бази података дефинисањем сопственог погледа. Коришћењем "ЦРЕАТЕ ВИЕВ" операција "СЕЛЕЦТ" је везана за табелу, која ће бити позвана уместо "ЦРЕАТЕ ТАБЛЕ" и омогућава вам приступ различитим деловима СКЛите интерпретера. Следећи, најједноставнији метод напада би био позивање функције „лоад_ектенсион“, која вам омогућава да учитате произвољну библиотеку са екстензијом, али је ова функција подразумевано онемогућена.
За извођење напада када је могуће извршити операцију „СЕЛЕЦТ“, предлаже се техника „Програмирање оријентисано на упите“, која омогућава да се искористе проблеми у СКЛите-у који доводе до оштећења меморије. Техника подсећа на програмирање оријентисано на повратак (
Извор: опеннет.ру