type
status
date
slug
summary
tags
category
icon
password
SQLMAP是一个开源的自动化SQL注入工具,其主要功能是扫描、发现并利用给定的URL的SQL注入漏洞。
- 判断可注入的参数
- 判断可以使用哪一种SQL注入技术进行注入
- 判断识别数据库的类型
- 根据用户的选择,从数据库中读取数据
SQLMAP支持的注入技术
- 基于布尔的盲注:根据返回页面判断条件真假的注入。
- 基于时间的盲注:不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
- 基于报错的注入:页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
- 基于联合查询的注入:可以使用UNION的情况下的注入。
- 堆查询注入:同时执行多条语句的注入。
SQLMAP支持的数据库类型
- 主要包括一些关系型数据库(RMDBS),如MySql、Oracle、PostgrsSQL、Microsoft SQL Server、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase、SAP Max DB、Informix、HSQLDB等。
SQLMAP检测注入漏洞的流程
- 网站连通性检测:检测目标的连接状态。
- WAF探测:检测网站是否受到WAF保护。
- 网页稳定性检测:检测网页是否稳定。
- 参数动态性检测:检测参数是否居有动态性。
- 启发式注入检测:探测改参数点是否是动态的、是否为可能的注入点。
SQLMAP的误报检测机制
- 误报检测:SQLMAP的布尔盲注、时间盲注方式判断注入点时,存在误报的可能。为防止误报,SQLMAP引入了误报检测机制。
两个基础检测算法
- 页面相似度对比技术(在各种注入技术中大量使用):在SQLMAP检测的整个过程中,会有一个原始响应的定义,指的是在网站连通性检测的过程中,如果网站成功响应,则把该响应定义为原始响应(包括状态码、HTTP响应投、HTTP响应体)。一个HTTP请求成功响应后,将与原始响应进行对比,的出对比结果,算法输出为True表示当前响应与原始响应相似,算法输出为False表示当前响应与原始响应不相似。
- 高斯分布识别响应机制(在UNION注入个时间盲注过程中使用):网站的响应是基于逻辑的,如果一组请求,网站的处理逻辑相同,那么响应几乎也是相同的。如果某一个响应出现了变化,则可以认为网站处理逻辑变了,这种逻辑的变化,可能正是因为注入成功了。
SQLMAP基本使用
- sqlmap -u “www.test.com/index/php?id=1”
- 验证过程
- 判断可注入的参数
- 判断可以用哪种SQL注入技术来注入
- 识别出所有存在的注入类型
- 尝试去判定数据库版本、开发语言、操作系统版本



SQLMAP基本使用 -r参数的用法









-m参数(从文件中取出保存的URL进行检测)
- Author:KingCode
- URL:https://kingcode.dpdns.org/article/d156ef3b-3ff8-4b88-869e-8ddc9dcb93eb
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!









