Check Point á០áá¯áá±áá®áá»á¬ážá
á¡á±á¬ááºááŒááºáá±á¬ááá¯ááºááá¯ááºááŸá¯áá áºáá¯á¡ááœááºá SQLite áá±áá¬áá±á·á áºááᯠá¡áá°ážá¡ááŒá±á¬ááºážááŸáá·áº áá±áá¬ááá·áºááœááºážááŸá¯áá¯á¶á á¶á¡ááŒá ẠSQLite áá±áá¬áá±á·á áºááᯠá¡áá¯á¶ážááŒá¯ááá·áº á¡ááá®áá±ážááŸááºážáá»á¬ážá¡áá±á«áº ááá¯ááºááá¯ááºááŒááºážáááºážáááºážááᯠááá·áºáááºáá¬ážááá·áº ááá¯ááºááá¯ááºáá¶ááá±á¬ á¡ááá®áá±ážááŸááºážáá»á¬ážá áá±áá¬áá±á·á áºááá¯ááºáá»á¬ážááᯠááœááºážáá¶ááŒááºáááºááá¯ááºáááºááá¯á¡ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááŸáááŒá®ážáá¬áž local access ááá¯áá»á²á·ááœááºááẠáááºážáááºážááᯠá¡áá¯á¶ážááŒá¯áá¬ážáá±á¬ á¡ááá®áá±ážááŸááºážáá»á¬ážááœáẠááŸááºáá¬ážáá±á¬ backdoors áá»á¬ážááᯠáá±á«ááºážá ááºáááºááŸáá·áº áá¯á¶ááŒá¯á¶áá±ážáá¯áá±áá®áá»á¬ážá malware ááá¯ááœá²ááŒááºážá áááºááŒá¬ááá·áºá¡áá« áá¯á¶ááŒá¯á¶áá±ážááá¹ááá¬ážáá»á¬ážááᯠáá»á±á¬áºááœáŸá¬ážááẠáááºážáááºážááá¯áááºáž á¡áá¯á¶ážááŒá¯ááá¯ááºáááºá ááá¯ááºá¡á á¬ážááá¯ážááŒááºážááᯠáá¯ááºáá±á¬ááºááŒá®ážáá±á¬áẠáá¯ááºáá±á¬ááºáá»ááºááᯠá¡ááá®áá±ážááŸááºážááẠááŒá¯ááŒááºáá¬ážáá±á¬áá±áá¬áá±á·á áºááŸá ááá¬ážáá áºáá¯ááŸáá·áº ááá·áºáá»ááºááá·áº ááááá¯á¶áž SELECT áá±ážááŒááºážááŸá¯ááᯠáá¯ááºáá±á¬ááºáááºá
á¥ááá¬á¡áá±ááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠááááºá
á¬á
á¬á¡á¯ááºááá¯ááœáá·áºáá±á¬á¡áá«ááœáẠiOS ááœáẠáá¯ááºááá¯áá¯ááºáá±á¬ááºááá¯ááºááŸá¯ááᯠááŒááá²á·ááŒá®ážá âAddressBook.sqlitedbâ áá±áá¬áá±á·á
áºáá«áá±á¬ááá¯ááºááᯠá¡ááá¯ááŒá¯áá¬ážáá±á¬áááºážáááºážááᯠá¡áá¯á¶ážááŒá¯á ááŒá¯ááŒááºááœááºážáá¶áá¬ážáááºá ááá¯ááºááá¯ááºááŸá¯ááẠfts3_tokenizer function (CVE-2019-8602á pointer dereference capability)á á§ááŒá®á SQLite 2.28 á¡ááºááááºááœáẠááŒááºáááºáá¬ážáá±á¬ á¡ááŒá¬ážá¡á¬ážáááºážáá»ááºáá
áºáá¯á¡á¬áž á¡áá¯á¶ážááŒá¯áá²á·áááºá
ááá¯ááºááá¯ááºááŸá¯áááºážáááºážááẠSQLite á¡ááºáá»ááºááœáẠááŸááºáá¬ááºááá¯ááœááºážááŸá¯ááŒá
áºá
á±áá±á¬ áááá¬ážáá±á¬ááŒá¿áá¬áá»á¬ážááᯠá¡áá¯á¶ážáá»ááŒááºážááœáá·áºááŒá¯ááá·áº âQuery Hijackingâ ááŸáá·áº âQuery Oriented Programmingâ áááºážá
áá
áºááŸá
áºáá¯ááᯠá¡áá¯á¶ážááŒá¯ááŸá¯á¡áá±á«áº á¡ááŒá±áá¶áá¬ážáááºá âQuery Hijackingâ á á¡ááŸá
áºáá¬áááŸá¬ áá±áá¬áá±á·á
áºá ááœá²á·á
ááºážáá¯á¶ááᯠáá¯á¶ážááŒááºáá±ážááá·áº sqlite_master áááºáá±á¬ááºááŸá¯ááá¬ážááŸá âsqlâ á¡ááœááºá á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠá¡á
á¬ážááá¯ážááẠááŒá
áºáááºá áááºááŸááºáá¬ážáá±á¬ á¡ááœááºááœáẠáá±áá¬áá±á·á
áºááŸá á¡áá¬ááá¹áá¯áá»á¬ážá áááºáá±á¬ááºáá¯á¶ááᯠáá±á¬áºááŒáááºá¡ááœáẠá¡áá¯á¶ážááŒá¯ááá·áº DDL (Data Definition Language) ááá±á¬ááºáá
áºáᯠáá«ááŸááááºá áá±á¬áºááŒáá»ááºá¡á¬áž standard SQL syntax, i.e. "CREATE TABLE" áááºáá±á¬ááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯ááŒá®ážá
áá±áá¬áá±á·á
áºá¡á
ááŒá¯ááŒááºážáá¯ááºáááºážá
ááºá¡ááœááºáž áá¯ááºáá±á¬ááºááẠ(ááááŠážá
áœá¬á
áááºáá»áááºá¡ááœááºáž
sqlite3LocateTable áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠááŸááºáá¬ááºááœáẠááá¬ážááŸáá·áºáááºá
ááºáá±á¬ á¡ááœááºážááá¯ááºážáááºáá±á¬ááºáá¯á¶áá»á¬áž áááºáá®ážáááºá
á¡áá°á¡áááŸá¬ "CREATE TABLE" ááᯠ"CREATE VIEW" ááŒáá·áº á¡á á¬ážááá¯ážááŒááºážááŒá±á¬áá·áºá áááºáááá¯ááºááá¯ááºá¡ááŒááºááᯠáááºááŸááºááŒááºážááŒáá·áº áá±áá¬áá±á·á áºááá¯á·áááºáá±á¬ááºááœáá·áºááŸááºááá»áŸááᯠááááºážáá»á¯ááºááá¯ááºáááºááŒá áºáááºá "CREATE VIEW" ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº "SELECT" áá¯ááºáá±á¬ááºáá»ááºááẠ"CREATE TABLE" á¡á á¬áž "CREATE TABLE" áá¯áá±á«áºááá¯ááá·áº ááá¬ážááŸáá·áº SQLite á áá¬ážááŒááºá ááá°áá®áá±á¬ á¡á áááºá¡ááá¯ááºážáá»á¬ážááᯠáááºáá±á¬ááºááŒáá·áºááŸá¯ááá¯ááºáááºááŒá áºáááºá ááá¯á·áá±á¬ááºá ááá¯ááºááá¯ááºááẠá¡ááá¯ážááŸááºážáá¯á¶ážáááºážáááºážááŸá¬ ááá·áºá¡á¬áž ááá¯ážáá»á²á·ááŸá¯áá áºáá¯ááŒáá·áº áááá¬ážáá±á¬á á¬ááŒáá·áºááá¯ááºáá áºáá¯ááᯠáááºááá¯ááºá á±ááá·áº âload_extensionâ áá¯ááºáá±á¬ááºáá»ááºááᯠáá±á«áºáááºááŒá áºááŒá®áž á€áá¯ááºáá±á¬ááºáá»ááºááᯠáá°áááºážá¡ááá¯ááºáž ááááºáá¬ážáááºá
âSELECTâ áá¯ááºáá±á¬ááºáá»ááºááᯠáá¯ááºáá±á¬ááºááẠááŒá
áºááá¯ááºááá·áºá¡áá« ááá¯ááºááá¯ááºááŒááºážá¡á¬áž áá¯ááºáá±á¬ááºáááºá âQuery Oriented Programmingâ áááºážááá¬ááᯠá¡ááá¯ááŒá¯áá¬ážááŒá®ážá ááŸááºáá¬ááºááá¯ááœááºážááŸá¯ááŒá
áºá
á±áá±á¬ SQLite ááœáẠááŒá¿áá¬áá»á¬ážááᯠá¡áá¯á¶ážáá»ááá¯ááºá
á±ááá·áº á¡ááá¯ááŒá¯áá¬ážáááºá á¡ááá¯áá«áááºážááá¬ááẠreturn-oriented programming ááá¯á¡ááŸááºááá±ááẠ(
source: opennet.ru