宋超臣, 黃俊強, 吳瓊, 郭軼
(黑龍江省電子信息產品監督檢驗院,黑龍江哈爾濱150090)
隨著WEB應用技術的迅猛發展以及數據庫在Web中的廣泛應用,SQL注入已經成為WEB應用的主要攻擊手段。根據OWASP TOP 10統計,注入攻擊一直位于WEB威脅的榜首位置,而SQL注入攻擊是注入攻擊的主要方式。SQL是訪問數據庫所必須采用的標準語言,大多數Web應用都需要與數據庫進行交互,以便生成用戶需要的數據。SQL注入攻擊主要是由于編程人員在開發應用程序的時候,沒有對用戶輸入進行合法性驗證或者驗證規則存在漏洞,致使惡意攻擊者可以使用非法輸入竊取系統的敏感資料[1]。在此基礎上,惡意攻擊者可以通過構造特殊SQL語句執行數據庫控制臺命令,如果數據庫安全配置不嚴格的話,甚至可以直接執行操作系統命令。
本文針對上述問題,根據SQL語句的執行特點,給出了三種SQL注入分類,然后討論了通用的數據庫SQL注入繞過技術和針對不同數據庫的特定SQL注入繞過技術。最后,本文從源代碼開發到網絡架構設計等不同層面給出了SQL注入的防御技術。
本文第一節給出了SQL注入的分類?第二節給出了SQL注入的繞過技術?第三節給出了SQL注入的防御機制?第四節總結本文并指出下一步的工作。
當用戶輸入的SQL查詢語句的內容或字符串轉義字符沒有正確地經過應用程序過濾時,就可能存在SQL注入漏洞,它將導致數據庫執行非法的SQL語句,SQL注入漏洞通常在應用程序的査詢接口設計不適當時發生[2]。……