欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > SQL漏洞自动注入和数据库接管开源工具——sqlmap的介绍和保姆级使用教程

SQL漏洞自动注入和数据库接管开源工具——sqlmap的介绍和保姆级使用教程

2025/7/11 11:13:13 来源:https://blog.csdn.net/xiaochenXIHUA/article/details/142059186  浏览:    关键词:SQL漏洞自动注入和数据库接管开源工具——sqlmap的介绍和保姆级使用教程

说明:本文仅是用于学习测试自己搭建的SQL注入漏洞和网络安全维护,请勿用在非法途径上,违者后果自负,与笔者无关;本文开始前请认真详细学习《‌中华人民共和国网络安全法》‌及其相关法规内容【学法时习之丨网络安全在身边一图了解网络安全法_中央网络安全和信息化委员会办公室】 

一、sqlmap介绍

        sqlmap是一个开源渗透测试工具,它可以自动执行检测和利用 SQL 注入漏洞来实现接管数据库服务器。它配备了一个强大的检测引擎、终极渗透测试器的许多功能,从数据库指纹识别、及数据库中获取数据,到访问底层文件系统和通过带外连接在操作系统上执行命令;功能十分强大。

1.1、sqlmap支持的sql注入类型

sqlmap能够检测和利用五种不同的SQL 注入类型
序号sql注入类型说明
1基于布尔值的盲注sqlmap替换或附加到 HTTP 请求中受影响的参数、包含子语句的语法有效的 SQL 语句字符串或用户希望检索其输出的任何其他 SQL 语句。对于每个 HTTP 响应,通过将 HTTP 响应标头/正文与原始请求进行比较,该工具会逐个字符推断注入的语句的输出。或者,用户可以提供字符串或正则表达式以在 True 页面上进行匹配。在 sqlmap 中实现的用于执行此技术的二分算法能够使用最多 7 个 HTTP 请求来获取输出的每个字符。当输出不在明文纯字符集内时,sqlmap 将调整具有更大范围的算法来检测输出
2基于时间的盲注sqlmap 在 HTTP 请求中替换或附加一个语法有效的 SQL 语句字符串,其中包含一个查询,该查询将后端 DBMS 保留以返回一定秒数。对于每个 HTTP 响应,通过比较 HTTP 响应时间与原始请求,该工具会逐个字符推断注入语句的输出。与基于布尔的技术一样,也应用了等分算法。
3基于错误注入sqlmap 将特定于数据库的错误消息触发语句替换或附加到受影响的参数,并解析 HTTP 响应标头和正文,以查找包含注入的预定义字符和其中的子查询语句输出的DBMS错误消息。【仅当Web程序已配置为显示后端数据库管理系统错误消息时,此技术才有效
4基于union查询注入sqlmap将语法上有效的SQL语句使用union关键字附加到受影响的参数中,【仅当Web程序页面在循环或类似内容中直接传递语句的输出时,以便查询输出的每一行都打印在页面内容上,此技术才起作用(条件是:根据一个较多字段的表对一个少字段的表进行偏移注入,在页面有回显点的情况下)
5堆叠注入

sqlmap会测试Web程序是否支持堆叠查询;如果支持,则将堆叠注入内容附加到受影响的参数后,且用括号()括起来。【此技术对于运行数据定义语句(DDL)、数据操纵语句(DML)以外的 SQL 语句非常有用,可能会导致文件系统读写访问和操作系统命令执行,具体取决于底层后端数据库管理系统和会话用户权限。

1.2、sqlmap支持的通用功能

sqlmap支持的通用功能
序号sqlmap支持的通用功能说明
1几乎支持市面所有的关系型数据库注入【MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDB、Informix、MariaDB、Percona、MemSQL、TiDB、CockroachDB、HSQLDB、H2、MonetDB、Apache Derby、AmazonRedshift, Vertica, Mckoi, Presto, ALTIBASE, MimerSQL, CrateDB, Greenplum, Drizzle, Apache Ignite, Cubrid, InterSystems Cache, IRIS, eXtremeDB, FrontBase, Raima Database Manager, YugabyteDB, Aurora, OpenGauss, ClickHouse和 Virtuoso 】
2支持五种 SQL 注入技术【基于布尔的盲注、基于时间的盲注、基于错误的盲注、UNION 查询和堆叠查询注入】
3可以提供单个目标 URL,从 Burp 代理或 WebScarab 代理请求日志文件中获取目标列表,从文本文件中获取整个 HTTP 请求,或者通过向 sqlmap 提供 Google dork 来获取目标列表,该 dork 查询 Google 搜索引擎并解析其结果页面。您还可以定义一个基于正则表达式的范围,用于标识要测试的已解析地址
4提供了 GET 参数、POST 参数、HTTP Cookie 标头值、HTTP User-Agent 标头值和 HTTP Referer 标头值,以识别和利用 SQL 注入漏洞。还可以指定要测试的特定参数的逗号分隔列表。
5用于指定并发 HTTP(S) 请求(多线程)的最大数量以加快盲目 SQL 注入技术的选项。反之亦然,也可以指定每个 HTTP(S) 请求之间要保持的秒数。还实施了其他优化开关以加快开发速度
6HTTP Cookie 标头字符串支持,当 Web 应用程序需要基于 Cookie 的身份验证并且您拥有此类数据时,或者您只想测试和利用此类标头值的 SQL 注入时,这非常有用。您还可以指定始终对 Cookie 进行 URL 编码
7自动处理来自应用程序的 HTTP Set-Cookie 标头,如果会话过期,则重新建立会话。还支持对这些值进行测试和利用。反之亦然,您也可以强制忽略任何标头
8HTTP 协议 Basic、Digest、NTLM 和 Certificate 身份验证支持
9HTTP(S) 代理支持将请求传递到目标应用程序,该目标应用程序也适用于 HTTPS 请求和经过身份验证的代理服务器
10用于伪造 HTTP Referer 标头值和 HTTP User-Agent 标头值的选项,该值由用户指定或从文本文件中随机选择
11支持提高输出消息的详细级别:存在 7 个详细级别
12支持从目标 URL 解析 HTML 表单,并针对这些页面伪造 HTTP(S) 请求,以测试表单参数是否存在漏洞
13每个查询的估计到达时间支持,实时更新,以便用户大致了解检索查询输出需要多长时间
14获取数据时自动将会话(查询及其输出,即使部分检索)实时保存在文本文件上,并通过解析会话文件来恢复注入
15支持从配置 INI 文件中读取选项,而不是每次在命令行上指定所有开关。还支持根据提供的命令行开关生成配置文件
16支持在本地 SQLite 3 数据库上复制后端数据库表结构和条目
17支持解析 HTTP(S) 响应并向用户显示任何 DBMS 错误消息
18与其他 IT 安全开源项目 Metasploit 和 w3af 集成

1.3、sqlmap支持的指纹和枚举功能

sqlmap支持的指纹和枚举功能
序号sqlmap支持的指纹和枚举功能
1基于错误消息、横幅解析、函数输出比较和特定功能(如 MySQL 注释注入)的广泛后端数据库软件版本和底层操作系统指纹。如果您已经知道后端数据库管理系统名称,也可以强制使用它
2基本的 Web 服务器软件和 Web 应用程序技术指纹
3支持检索 DBMS 横幅会话用户当前数据库信息。该工具还可以检查会话用户是否为数据库管理员 (DBA)
4支持枚举用户、密码哈希、权限、角色、数据库、表和列
5自动识别密码哈希格式并支持使用基于字典的攻击来破解它们
6</

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com