ื ื ื™ื™ึทืข ื˜ืขื›ื ื™ืง ืคึฟืึทืจ ืขืงืกืคึผืœื•ื™ื˜ื™ื ื’ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ื– ืื™ืŸ SQLite ืื™ื– ื‘ืึทืงืขื ืขื .

ืจืขืกืขืึทืจื˜ืฉืขืจืก ืคื•ืŸ ื˜ืฉืขืง ืคึผื•ื™ื ื˜ ืึทื ื˜ื“ืขืงื˜ ื‘ื™ื™ ื“ื™ DEF CON ื–ื™ืฆื•ื ื’, ื“ืขื˜ืึทื™ืœืก ืคื•ืŸ ืึท ื ื™ื™ึทืข ื˜ืขื›ื ื™ืง ืคึฟืึทืจ ืึทื˜ืึทืงื™ื ื’ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื ื™ืฆืŸ ืฉืคึผื™ืจืขื•ื•ื“ื™ืง ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ SQLite. ื“ื™ ื˜ืฉืขืง ืคึผื•ื™ื ื˜ ืื•ืคึฟืŸ ื‘ืึทื˜ืจืึทื›ื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก ื˜ืขืงืขืก ื•ื•ื™ ืึท ื’ืขืœืขื’ื ื”ื™ื™ื˜ ืฆื• ื•ื™ืกืฉื˜ื™ืžืขืŸ ืกื™ื ืขืจื™ืึธื•ื– ืคึฟืึทืจ ืขืงืกืคึผืœื•ื™ื˜ื™ื ื’ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ื– ืื™ืŸ ืคืึทืจืฉื™ื“ืŸ ื™ื ืขืจืœืขืš ืกืงืœื™ื˜ืข ืกืึทื‘ืกื™ืกื˜ืึทืžื– ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ื’ืœื™ื™ึทืš ืขืงืกืคึผืœื•ื™ื˜ืึทื‘ืึทืœ. ืจืขืกืขืึทืจื˜ืฉืขืจืก ื”ืึธื‘ืŸ ืื•ื™ืš ืฆื•ื’ืขื’ืจื™ื™ื˜ ืึท ื˜ืขื›ื ื™ืง ืคึฟืึทืจ ืขืงืกืคึผืœื•ื™ื˜ื™ื ื’ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ื– ื“ื•ืจืš ืงืึธื“ื™ืจื•ื ื’ ื“ื™ ื’ื•ื•ื•ืจืข ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืึท ืงื™ื™ื˜ ืคื•ืŸ ืกืขืœืขืงื˜ ืงื•ื•ื™ืจื™ื– ืื™ืŸ ื“ื™ SQLite ื“ืึทื˜ืึทื‘ื™ื™ืก, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื‘ื™ื™ืคึผืึทืก ASLR.

ืคึฟืึทืจ ืึท ื’ืขืจืึธื˜ืŸ ื‘ืึทืคืึทืœืŸ, ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ืžืึธื“ื™ืคื™ืฆื™ืจืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ื˜ืขืงืขืก ืคื•ืŸ ื“ื™ ืึทื˜ืึทืงื™ืจื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–, ื•ื•ืึธืก ืœื™ืžืึทืฅ ื“ืขื ืื•ืคึฟืŸ ืฆื• ืื ืคืืœืŸ ืื•ื™ืฃ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื•ื•ืึธืก ื ื•ืฆืŸ ื“ื™ SQLite ื“ืึทื˜ืึทื‘ื™ื™ืก ื•ื•ื™ ืึท ืคึฟืึธืจืžืึทื˜ ืคึฟืึทืจ ื“ื•ืจื›ืคืึธืจ ืื•ืŸ ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘ ื“ืึทื˜ืŸ. ื“ืขืจ ืื•ืคึฟืŸ ืงืขื ืขืŸ ืื•ื™ืš ื–ื™ื™ืŸ ื’ืขื ื™ืฆื˜ ืฆื• ื™ืงืกืคึผืึทื ื“ ื™ื’ื–ื™ืกื˜ื™ื ื’ ื”ื™ื’ืข ืึทืงืกืขืก, ืœืžืฉืœ, ืฆื• ื•ื™ืกืฉื˜ื™ืžืขืŸ ืคืึทืจื‘ืึธืจื’ืŸ ื‘ืึทืงื“ืึธืจื– ืื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืฆื• ื‘ื™ื™ืคึผืึทืก ื–ื™ื›ืขืจื”ื™ื™ื˜ ืžืขืงืึทื ื™ื–ืึทืžื– ื•ื•ืขืŸ ืึทื ืึทืœื™ื™ื–ื™ื ื’ ืžืึทืœื•ื•ืึทืจืข ื“ื•ืจืš ื–ื™ื›ืขืจื”ื™ื™ื˜ ืจื™ืกืขืจื˜ืฉืขืจื–. ืึธืคึผืขืจืึทืฆื™ืข ื ืึธืš ื˜ืขืงืข ืกืึทื‘ืกื˜ื™ื˜ื•ืฉืึทืŸ ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืื™ืŸ ื“ืขื ืžืึธืžืขื ื˜ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืขืงืกืึทืงื™ื•ืฅ ื“ื™ ืขืจืฉื˜ืขืจ ืกืขืœืขืงื˜ ืึธื ืคึฟืจืขื’ ืงืขื’ืŸ ืึท ื˜ื™ืฉ ืื™ืŸ ื“ื™ ืžืึทื“ืึทืคื™ื™ื“ ื“ืึทื˜ืึทื‘ื™ื™ืก.

ื•ื•ื™ ืึท ื‘ื™ื™ืฉืคึผื™ืœ, ืžื™ืจ ื“ืขืžืึทื ืกื˜ืจื™ื™ื˜ื™ื“ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืœื•ื™ืคืŸ ืงืึธื“ ืื™ืŸ ื™ืึธืก ื•ื•ืขืŸ ืขืคืŸ ืึทืŸ ืึทื“ืจืขืก ื‘ื•ืš, ื“ื™ ื˜ืขืงืข ืžื™ื˜ ื“ื™ "AddressBook.sqlitedb" ื“ืึทื˜ืึทื‘ื™ื™ืก ืื™ื– ืžืึทื“ืึทืคื™ื™ื“ ืžื™ื˜ ื“ื™ ืคืืจื’ืขืœื™ื™ื’ื˜ ืื•ืคึฟืŸ. ื“ื™ ื‘ืึทืคืึทืœืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืึท ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืื™ืŸ ื“ื™ fts3_tokenizer ืคื•ื ืงืฆื™ืข (CVE-2019-8602, ื˜ื™ื™ึทื˜ืœ ื“ืขืจืขืคืคืขืจืขื ืกืข ืคื™ื™ื™ืงื™ื™ื˜), ืคืึทืจืคืขืกื˜ื™ืงื˜ ืื™ืŸ ื“ื™ ืืคืจื™ืœ SQLite 2.28 ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ, ืฆื•ื–ืึทืžืขืŸ ืžื™ื˜ ืื ื“ืขืจืŸ. ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืื™ืŸ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ืคึฟืขื ืฆื˜ืขืจ ืคืึทื ื’ืงืฉืึทื ื–. ืื™ืŸ ืึทื“ื™ืฉืึทืŸ, ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืึท ืžืขื˜ืึธื“ ืคึฟืึทืจ ืจื™ืžืึธื•ื˜ืœื™ ืกื™ื–ื™ื ื’ ืงืึธื ื˜ืจืึธืœ ืคื•ืŸ ืึท ืึทื˜ืึทืงืขืจ ืก ื‘ืึทืงืขื ื“ ืกืขืจื•ื•ืขืจ ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ PHP, ื•ื•ืึธืก ืึทืงื™ื•ืžื™ืึทืœื™ื™ืฅ ืคึผืึทืกื•ื•ืขืจื“ื– ื™ื ื˜ืขืจืกืขืคึผื˜ืึทื“ ื‘ืขืฉืึทืก ื“ื™ ืึธืคึผืขืจืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื‘ื™ื™ื–ืข ืงืึธื“ (ื“ื™ ื™ื ื˜ืขืจืกืขืคึผื˜ืึทื“ ืคึผืึทืกื•ื•ืขืจื“ื– ื–ืขื ืขืŸ ื˜ืจืึทื ืกืžื™ื˜ื˜ืขื“ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืึท SQLite ื“ืึทื˜ืึทื‘ื™ื™ืก).

ื“ื™ ื‘ืึทืคืึทืœืŸ ืื•ืคึฟืŸ ืื™ื– ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืฆื•ื•ื™ื™ ื˜ืขืงื ื™ืงืก "ืงื•ื•ืขืจื™ ื›ื™ื™ื“ื–ืฉืึทืงื™ื ื’" ืื•ืŸ "ืงื•ื•ืขืจื™ ืึธืจื™ืขื ื˜ื™ื“ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’", ื•ื•ืึธืก ืœืึธื–ืŸ ืขืงืกืคึผืœื•ื™ื˜ื™ื ื’ ืึทืจื‘ื™ื˜ืจืึทืจื™ืฉ ืคึผืจืึธื‘ืœืขืžืก ื•ื•ืึธืก ืคื™ืจืŸ ืฆื• ื–ื›ึผืจื•ืŸ ืงืึธืจื•ืคึผืฆื™ืข ืื™ืŸ ื“ื™ SQLite ืžืึธื˜ืึธืจ. ื“ื™ ืขืกืึทื ืก ืคื•ืŸ "Query Hijacking" ืื™ื– ืฆื• ืคืึทืจื‘ื™ื™ึทื˜ืŸ ื“ื™ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ื“ื™ "sql" ืคืขืœื“ ืื™ืŸ ื“ื™ sqlite_master ื“ื™ื ืกื˜ ื˜ื™ืฉ, ื•ื•ืึธืก ื“ื™ื˜ืขืจืžืึทื ื– ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก. ื“ื™ ืกืคึผืขืกื™ืคื™ืขื“ ืคืขืœื“ ื›ึผื•ืœืœ ืึท DDL (Data Definition Language) ื‘ืœืึธืง ื’ืขื ื™ืฆื˜ ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ืึทื‘ื“ื–ืฉืขืงืฅ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก. ื“ื™ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืื™ื– ืกืคึผืขืกื™ืคื™ืขื“ ื ื™ืฆืŸ ื ืึธืจืžืึทืœ ืกืงืœ ืกื™ื ื˜ืึทืงืก, ื™.ืข. ื“ื™ "CREATE TABLE" ืงืึทื ืกื˜ืจืึทืงืฉืึทืŸ ืื™ื– ื’ืขื ื™ืฆื˜,
ื•ื•ืึธืก ืื™ื– ืขืงืกืึทืงื™ื•ื˜ืึทื“ ื‘ืขืฉืึทืก ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ื™ื ื™ื˜ื™ืึทืœื™ื–ืึทื˜ื™ืึธืŸ ืคึผืจืึธืฆืขืก (ื‘ืขืฉืึทืก ื“ืขืจ ืขืจืฉื˜ืขืจ ืงืึทื˜ืขืจ
sqlite3LocateTable ืคืึทื ื’ืงืฉืึทื ื– ืฆื• ืฉืึทืคึฟืŸ ื˜ื™ืฉ-ืคึฟืึทืจื‘ื•ื ื“ืขื ืข ื™ื ืขืจืœืขืš ืกื˜ืจืึทืงื˜ืฉืขืจื– ืื™ืŸ ื–ื›ึผืจื•ืŸ.

ื“ืขืจ ื’ืขื“ืึทื ืง ืื™ื– ืึทื–, ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ืจื™ืคึผืœื™ื™ืกื™ื ื’ "CREATE TABLE" ืžื™ื˜ "CREATE VIEW", ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืงื™ื™ืŸ ืึทืงืกืขืก ืฆื• ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ื“ื•ืจืš ื“ื™ืคื™ื™ื ื™ื ื’ ื“ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืžื™ื™ื ื•ื ื’. ื ื™ืฆืŸ "CREATE VIEW" ืึท "SELECT" ืึธืคึผืขืจืึทืฆื™ืข ืื™ื– ื’ืขื‘ื•ื ื“ืŸ ืฆื• ื“ื™ ื˜ื™ืฉ, ื•ื•ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขืจื•ืคึฟืŸ ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ "CREATE TABLE" ืื•ืŸ ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืึทืงืกืขืก ืคืึทืจืฉื™ื“ืขื ืข ืคึผืึทืจืฅ ืคื•ืŸ ื“ื™ SQLite ื™ื‘ืขืจื–ืขืฆืขืจ. ื“ืขืจื ืึธืš, ื“ื™ ืกื™ืžืคึผืœืึทืกื˜ ืื•ืคึฟืŸ ืคื•ืŸ ื‘ืึทืคืึทืœืŸ ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ืฆื• ืจื•ืคืŸ ื“ื™ "ืœืึธืึทื“_ืขืงืกื˜ืขื ืกื™ืึธืŸ" ืคึฟื•ื ืงืฆื™ืข, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืžืึทืกืข ืึท ืึทืจื‘ื™ื˜ืจืึทืจื™ืฉ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืžื™ื˜ ืึท ืคืึทืจืœืขื ื’ืขืจื•ื ื’, ืึธื‘ืขืจ ื“ื™ ืคื•ื ืงืฆื™ืข ืื™ื– ืคืึทืจืงืจื™ืคึผืœื˜ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜.

ืฆื• ื“ื•ืจื›ืคื™ืจืŸ ืึทืŸ ื‘ืึทืคืึทืœืŸ ื•ื•ืขืŸ ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ื“ื•ืจื›ืคื™ืจืŸ ื“ื™ "SELECT" ืึธืคึผืขืจืึทืฆื™ืข, ื“ื™ "ืงื•ื•ืขืจื™ ืึธืจื™ืขื ื˜ื™ื“ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’" ื˜ืขื›ื ื™ืง ืื™ื– ืคืืจื’ืขืœื™ื™ื’ื˜, ื•ื•ืึธืก ืžืื›ื˜ ืขืก ืžืขื’ืœืขืš ืฆื• ื’ื•ื•ื•ืจืข ืคึผืจืึธื‘ืœืขืžืก ืื™ืŸ SQLite ื•ื•ืึธืก ืคื™ืจืŸ ืฆื• ื–ื›ึผืจื•ืŸ ืงืึธืจื•ืคึผืฆื™ืข. ื“ื™ ื˜ืขื›ื ื™ืง ืื™ื– ืจืขืžืึทื ื™ืกืึทื ื˜ ืคื•ืŸ ืฆื•ืจื™ืงืงื•ืžืขืŸ-ืึธืจื™ืขื ื˜ื™ื“ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ (ืจืึธืคึผ, ืฆื•ืจื™ืง-ืึธืจื™ืขื ื˜ื™ื“ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’), ืึธื‘ืขืจ ื ื™ืฆื˜ ื ื™ืฉื˜ ื™ื’ื–ื™ืกื˜ื™ื ื’ ืกื ื™ืคึผืึทืฅ ืคื•ืŸ ืžืึทืฉื™ืŸ ืงืึธื“ ืฆื• ื‘ื•ื™ืขืŸ ืึท ืงื™ื™ื˜ ืคื•ืŸ ืงืึทืœืœืก ("ื’ืึทื“ื’ืขืฅ"), ืึธื‘ืขืจ ื™ื ืกืขืจืฅ ืื™ืŸ ืึท ืกื›ื•ื ืคื•ืŸ ืกืึทื‘ืงื•ื•ืขืจื™ื– ืื™ืŸ SELECT.

ื ื ื™ื™ึทืข ื˜ืขื›ื ื™ืง ืคึฟืึทืจ ืขืงืกืคึผืœื•ื™ื˜ื™ื ื’ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ื– ืื™ืŸ SQLite ืื™ื– ื‘ืึทืงืขื ืขื .

ื ื ื™ื™ึทืข ื˜ืขื›ื ื™ืง ืคึฟืึทืจ ืขืงืกืคึผืœื•ื™ื˜ื™ื ื’ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ื– ืื™ืŸ SQLite ืื™ื– ื‘ืึทืงืขื ืขื .

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’