sql注入與sqlmap的使用
阿新 • • 發佈:2018-12-05
一.sql注入產生的原因
sql注入用一句概況就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL命令。 通過控制部分SQL語句,攻擊者可以查詢資料庫中任何自己需要的資料,利用資料庫的一些特性,可以直接獲取資料庫伺服器的系統許可權。
要利用sql注入必須要滿足兩個必要的條件:
1)使用者能夠控制資料的輸入
2)原本要執行的程式碼,拼接了使用者的輸入
正是由於這種拼接,導致了程式碼的注入。對於一個web請求來說,sql注入可能存在的URL引數,cookie,POST資料,以及HTTP訊息頭等。
二. 漏洞分類
根據是否回顯可以分為:顯示注入,盲注
根據注入型別分為: 字元型,數字型
三.檢測是否存在sql注入
1.注入字串數字型別時
1)提交一個單引號看是否會引發與正常響應不同或者報錯
2)如果有錯誤,輸入兩個單引號,把後面的單引號進行轉義,看錯誤是否消失,消失中則表明可能存在sql注入
3)進一步確定漏洞是否存在,構造”良性“輸入
oracle:'||'foo
ms-sql:'+'foo
mysql:' 'foo
2.注入型別為數字
1)嘗試輸入一個結果等於原始數字值的簡單數學表示式,例如1+1,如果做出相同的響應,則表明它易於受到攻擊(前提是改變數字會對響應有較大的改變)
2)如果第一個測試成功,可以用更復雜的方式:67-ASCII('A')或者51-ASCII(1)
3.時間延遲判斷
主要是構造語句達到時間延遲的目的。
常用的語句:
UserName=fff';waitfor%20delay%20'0:0:10'%20--%