滲透利器-kali工具 (第三章-5) sqlmap之sql注入一、二


本文內容:

  • 常見的注入方式
  • Sqlmap-常見測試參數
  • Sqlmap的測試等級
  • 介紹Sqlmap腳本
  • Sqlmap getshell
  • sqlmap小技巧
  • 使用Burp+Sqlmap批量測試
  • 使用Burp插件+sqlmap測試[需要安裝sqlmap插件

,


 

sqlmap之sql注入

1,常見的注入方式:

  1.sqlmap用於Access數據庫注入

  2.sqlmap用於Cookie注入  --cookie

  3.sqlmap用於Post注入  --froms 、--data、抓包

  4.sqlmap用於mysql注入

  繞過waf腳本測試:--tamper "space2morehash.py"

  常見sqlmap使用方法:

    https://www.cnblogs.com/hack404/p/10830239.html

    https://www.cnblogs.com/ichunqiu/p/5805108.html 

2,Sqlmap-常見的測試參數:

  1.指定參數進行測試:

    參數:*號,和-p選項

  2.使用Post方式提交注入:

    參數:--data選項

  3.Sqlmap掃描登錄[1-5]

    當 --level參數設定為2或者2以上的時候,會嘗試對Cookie進行注入。

    當 --level參數設定為3或者3以上的時候,會嘗試對User-Angent,Referer進行注入。

    參數:--level

  4.自動執行默認選項:

    參數: --batch

  5.使用代理服務器連接到目標URL

    參數:--proxy

  6.自動切換客戶端請求頭:

    參數:--random-agent

  7.設置測試線程數,默認線程1:

    參數:--threads

  8.獲取表中的數量:

    參數:--count

  9.風險等級,共有四個等級,默認為1:

    1.會測試大部分語句

    2.會增加基於時間的測試語句

    3.會增加or語句的sql注入語句。

    參數:--risk

3,Sqlmap的測試等級:

  1.探測等級[1-5]:

    參數: --level

    共有5個等級,默認為1,sqlmap使用的payload可以在xml/payloads.xml中看到,可以根據相應到的格式添加自己的payload。

    這個從參數不近影響使用哪些payload同時也影響測試的注入點,GET和Post的數據都會嘗試,

    大於或等於2的時候會測試cookie,大於3或等於3的時候會檢測HTTP User-Agent/Referer在不確定那個payload或者參數為注入點的時候,為了保證全面性,建議使用高的level值。

  2.風險等級[4個等級]

    參數:--risk

    共有四個風險等級,默認是1會測試大部分的測試語句,2會增加基於事件的測試語句,3會增加or語句的sql注入測試。

    在有些時候,例如在update的語句中,注入一個or的測試語句,可以導致更新的整個表,可能造成很大的風險。

    測試的語句同樣可以在xml/payloads。xml中找到,也可以額自行添加payload。

4,介紹Sqlmap腳本:

  1.腳本的租用:幫助我們繞過一些WAF,進行測試。

  2.腳本目錄:Tamper目錄。

  3.有哪些腳本:https://xz.aliyun.com/t/2746

5,sqlmap get shell:

  1.sqlmap命令操作

  2.sqlmap系統操作:

    --os-shell 產生交互式的操作系統的shell,用來執行cmd命令。

      1.--os-shell系統操作的要求:

        網站必須root權限:--is -dbs

        攻擊者需要知道網站的絕對路徑

        GPC為off,php主動轉義的功能關閉

        secure file priv為空

      2.使用--os-shell之后會生成兩個文件:

        上交腳本文件:可以上傳小木馬、大木馬。

        后門文件:保持權限。

6,是sqlmap小技巧:

  1.sqlmap注入時:

    1.判斷可以注入的桉樹

    2.判斷可以用那種sql注入技術來注入

    3.識別出那種數據庫

    4.根據用戶選擇,讀取哪些數據。

  2.sql注入支持五種不同的注入模式:
    1.基於布爾的盲注,即可以根據返回頁面判斷條件真假的注入。

    2.基於時間的盲注,即不能根據頁面返回內容判斷任何信息,用條件語句查看時間延遲,語句是否執行[即頁面返回時間是否增加]來判斷。

    3.基於報錯的注入,即頁面會返回錯誤信息,或者把注入的語句的結構直接返回在頁面中。

    4.聯合查詢注入,可以使用union的情況下的注入。

    5.堆查詢注入,可以同時執行多條語句的執行時的注入。

  3.sqlmap注入檢測:

    如果想觀察sqmap對一個點是進行了怎么的嘗試判斷以及數據讀取的,可以使用-v參數

    共有7個等級,默認為1:

      0、只顯示python錯誤以及嚴重的信息。

      1.同時顯示基本信息和警告信息[默認]。

      2.同時顯示debug信息。

      3.同時顯示注入的payload。

      4.同時顯示HTTP請求。

      5.同時顯示HTTP響應頭。

      6.同時顯示HTTP響應頁面。

      注:如果你想看到sqlmap發送的測試payload最好的等級就是3.

7,使用Burp+Sqlmap批量測試:

  sqlmap可以批量掃描包含有request的日志文件,而request日志文件可以通過burpsuite來獲取。

  因此通過sqlmap結合Burpsuite工具,可以更搞笑的對應應用程序是否存在sql注入漏洞進行地毯是的掃描。

  步驟:

    1.首先是Burp設置記錄log,文件名隨便填一個。

    2.把記錄的log文件放sqlmap目錄下。

    3.sqlmap讀log自動測試:

      sqlmap.py -l 文件名 --batch -smart

      batch:自動選yes

      smart:啟發式快速判斷,節約時間

    4.sqlmap,最后能注入的url會保存到一個文件內,具體目錄可以在讀取之后查看。

    任意:log文件中如果有sqlmap無法讀取的字符[ascii碼之外的字符]]會讀取失敗。

8,使用Burp插件+sqlmap測試[需要安裝sqlmap插件]:

  1.代理監聽sqlmap測試語句:

    sqlmap.py -u "http://xx.xxx.xx.x:8804/news.php?id=1" --proxy=http://127.0.0.1:8080 --random-agent

  2.sqlmap快速測試Burp數據包:

    -r參數,從文件讀取數據包

  3.使用Burp插件跑sqlmap注入


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM