安全測試學習之SQLMap

一、初識 SQLMap

SQLMap 是一個自動化的 SQL 注入工具,其作用是掃描、發現並利用給定 URL 的 SQL 注入漏洞。其可以完成的任務包括:
1)判斷可以注入的參數
2)判斷可以用哪種sql技術注入
3)識別出數據庫類型
4)根據用戶選擇讀取數據

二、5種SQL注入技術

1、基於布爾類型的注入
根據返回頁面判斷條件真假

2、基於時間的注入
判斷時間延遲語句是否執行

3、基於報錯注入
頁面會返回報錯信息

4、聯合查詢注入
在可以使用union的情況下的注入

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

三、安裝

下載 sqlmap 並放在 python(2.7) 的安裝目錄下

四、運用

1、判斷是否存在注入的命令:

在 windows 命令行下,進入 python 安裝目錄,執行命令

python sqlmap.py -u http://xxxxxxx/xxxxx

掃描結果通常在C盤 AppData\Local\sqlmap\output’url’ 目錄下

2、POST注入

1)攔截POST請求
2)將請求複製到 txt 文件中並保存
3)執行命令

python sqlmap.py -r sql-test.txt -p param

-r 是指定 txt 文件(sql-test.txt),-p 是指定要注入的參數(param)

3、Cookie注入

–level
指定測試的等級,從低到高爲1~5,默認爲1,當 level 大於等於2時,會執行 cookie 注入,level 大於等於 3 時會測試 User-Agent 和 Referer。如:

sqlmap.py -u”http://xxx.xxxx” --cookie "id=1" --dbs --level 2

五、常用指令

  • -current-user
    獲取當前用戶名稱

  • –users
    獲取數據庫的所有用戶

  • –passwords
    獲取用戶的密碼

  • -current-db
    獲取當前數據庫名稱

  • –dbs
    查詢當前用戶下的所有數據庫

  • -D aaa --tables
    查詢數據庫aaa中的所有表名

  • -T bbb --columns
    查詢表bbb裏面所有的列

  • -C ccc,ddd --dump
    下載ccc和ddd這兩列的值

  • –is-dba
    判斷當前賬戶是否爲管理員用戶,返回True或False

  • –roles
    列出數據庫用戶的角色

  • –sql-shell
    用於運行指定的 sql 語句

  • –tamper //重要指令
    對數據做修改繞過WAF,其自帶的腳本可以將 ’ 替換爲 \’ 等,常用腳本有 space2plus.py(將空格替換爲+)、space2hash.py(將空格替換爲#)等

歡迎關注微信公衆號,您的支持是對我最大的鼓勵
在這裏插入圖片描述

發佈了58 篇原創文章 · 獲贊 12 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章