探測
探測等級
參數:--level
共有五個等級,默認爲1,sqlmap使用的payload可以在xml/payloads.xml中看到,你也可以根據相應的格式添加自己的payload。
這個參數不僅影響使用哪些payload同時也會影響測試的注入點,GET和POST的數據都會測試,HTTP Cookie在level爲2的時候就會測試,HTTP User-Agent/Referer頭在level爲3的時候就會測試。
總之在你不確定哪個payload或者參數爲注入點的時候,爲了保證全面性,建議使用高的level值。
風險等級
參數:--risk
共有四個風險等級,默認是1會測試大部分的測試語句,2會增加基於事件的測試語句,3會增加OR語句的SQL注入測試。
在有些時候,例如在UPDATE的語句中,注入一個OR的測試語句,可能導致更新的整個表,可能造成很大的風險。
測試的語句同樣可以在xml/payloads.xml中找到,你也可以自行添加payload。
頁面比較
參數:--string,--not-string,--regexp,--code
默認情況下sqlmap通過判斷返回頁面的不同來判斷真假,但有時候這會產生誤差,因爲有的頁面在每次刷新的時候都會返回不同的代碼,比如頁面當中包含一個動態的廣告或者其他內容,這會導致sqlmap的誤判。此時用戶可以提供一個字符串或者一段正則匹配,在原始頁面與真條件下的頁面都存在的字符串,而錯誤頁面中不存在(使用--string參數添加字符串,--regexp添加正則),同時用戶可以提供一段字符串在原始頁面與真條件下的頁面都不存在的字符串,而錯誤頁面中存在的字符串(--not-string添加)。用戶也可以提供真與假條件返回的HTTP狀態碼不一樣來注入,例如,響應200的時候爲真,響應401的時候爲假,可以添加參數--code=200。
參數:--text-only,--titles
有些時候用戶知道真條件下的返回頁面與假條件下返回頁面是不同位置在哪裏可以使用--text-only(HTTP響應體中不同)--titles(HTML的title標籤中不同)。