
SQLite攻擊 – iOS持久化控制實現











1、容易實現的目標 (CVE-2015-7036)
- 不可信信指針取消引用fts3_tokenizer()
2、Chaitin team?在黑帽17會議上演示的?更復雜利用
- fts3OptimizerFunc()中的類型混淆
3、Exodus對最新麥哲倫漏洞的利用
- fts3SegReaderNext()中的整數溢出


- 內存泄漏
- 將整數打包和解包為64位指針
- 指針算數
- 能在內存中創建復雜的假對象
- 堆噴射



- 泄露令牌解析器地址
- 基址計算
- 偽造一個假令牌指向我們的惡意代碼
- 使用惡意令牌覆蓋原有令牌
- 實例化fts3虛擬表以觸發惡意代碼













由于虛擬表會使用底層的影子表,因此在不同的SQL接口之間傳遞原始的指針是很常見的。










- CVE-2019-8600
- CVE-2019-8598
- CVE-2019-8602
- CVE-2019-8577
- 開發更強大的漏洞利用工具。可以通過使用sqlite_version()或sqlite_compileoption_used()等函數從預制表格中選擇相關的QOP工具來動態構建利用。
- 實現更強大的原語,比如任意讀寫。
- 尋找更多“查詢者無法驗證數據庫是否可信”的場景。