sqlmap是一个开源渗透测试的自动化工具,可以自动检测和利用SQL注入漏洞并接管数据库服务器。它配备了一个强大的检测引擎,许多用于终极渗透测试的利基功能,以及广泛的开关,包括数据库指纹识别、从数据库中获取数据、访问底层文件系统,以及通过带外连接在操作系统上执行命令。
特点
Sqlmap的主要特点如下。
●支持多种数据库:MySQL、Oracle、PostgreSQL、Microsoft SQL Server、MariaDB、Microsoft Access、IBM DB2、SQLite、Sybase等。
●支持6种SQL注入技术:布尔盲注、时间盲注、显错式注入、联合查询注入、堆查询注入和OOB(Out-Of-Band,带外数据)注入。
●支持用户名、数据库、数据表、字段等信息的枚举。●支持自动识别密码哈希格式,并使用字典破解密码。●支持在所有数据库中搜索特定的数据库名、数据表名和字段。由于SQL注入漏洞的存在范围较广、危险性较大,Sqlmap强大的检测引擎为渗透测试提供了极大的便利。
安装
sqlmap是用python语言编写的,在安装Sqlmap之前,需要先安装Python 2.6/2.7或Python 3.x。
下载zip包解压。
Sqlmap的参数Sqlmap的选项参数有Target、Request、Injection、Brute force等13类,较常用的有以下4类。
●Target:确定SQL注入检测和攻击的目标,如指定URL。
●Request:定义如何连接目标URL,也就是定义请求内容,如指定Cookie的值。
●Injection:指定要测试的参数、提供payload等,如指定注入点。
●Enumeration:最常用且最重要的选项参数,主要用来枚举信息,如数据库、数据表和字段等信息。
常用参数及说明
常见的Sqlmap参数使用方法如下。
(1)GET型注入使用参数“-u”指定SQL注入的URL,URL中包含GET请求参数。
(2)POST型注入
使用参数“-u”指定SQL注入的URL,参数“--data”指定POST请求的数据体。
(3)带Cookie参数的注入
使用参数“-u”指定SQL注入的URL,参数“--cookie”指定请求中携带的Cookie值。
(4)枚举所有数据库名
使用参数“-u”指定SQL注入的URL,参数“--dbs”枚举所有的数据库。
(5)枚举指定数据库所有数据表的表名
使用参数“-u”指定SQL注入的URL,参数“--tables”枚举所有的数据表,参数“-D”指定枚举数据表所在的数据库。
sqlmap连接数据库
sqlmap URL探测
sqlmap文件读取目标
sqlmap google批量扫注入
sqlmap设置HTTP方法
sqlmap设置POST请求参数
sqlmap设置参数分隔符
sqlmap设置cookie头