針對於mysql資料庫的sql注入攻擊有2種,第一種是普遍大家都知道的字元型sql注入,
另一種攻擊是整數型的sql注入,在資料庫的滲透測試中,有些網站前端採用了WEB防火牆,
為了提高防火牆的攔截效率,減少誤報,大多數都會儘量的縮減發送的請求數。大部分的
sql注入攻擊來說,攻擊者輸入的是數位,也可能是字串攻擊語句,在網站前端沒有詳細
的安全過濾的時候,輸入數位值也可能傳到資料庫執行了字串形式的sql注入語句。那麼如
何檢測mysql資料庫的存在sql注入攻擊呢?
基本上先測試資料庫是否報錯,and 1=1 1=2等一些常用的sql注入語句。在測試時間的延遲
注入的時候,大部分的資料庫sql注入檢測裡都會有防火牆,並且攔截掉了時間延遲注入。
如果沒有延遲注入的情況下,說明要麼就不在sql注入的語句,要麼說明這個mysql資料庫不
存在注入漏洞,那麼後續的sql注入檢測,就可以依照get post的請求,來判斷是否是字元型
以及字串型的注入。如果您的mysql被攻擊,也可以找專業的網站安全公司來處理
ESAFE白帽駭客團隊。對網站進行安全防護,以及mysql安全部署。
資料庫的延遲注入
在可以輸入值的情況下,進行延遲sql注入檢測,尤其針對一些沒有明顯報錯資訊的頁面裡,
首當其衝的選擇延遲注入的方式去進行注入檢測。延遲注入分benchmark以及sleep語句這兩
種注入方式,基本上都會有延遲,但是在注入測試中會有很大的區別。
sleep語句在執行過程中會返回一個為0的值,在測試中只要有and語句,sleep語句就不會執行,
所以在注入測試中尤其的注意一下。insert注入延遲,是需要sleep延遲語句進行資料庫的運算
,才能起到注入效果,利用mysql資料庫的類型轉換功能,或者使用like等的語句都可以進行
insert延遲注入。如下圖所示: