1 SQLMap简介
SQLMap 是一个自动化的SQL注入工具,其主要功能是扫描、发现并利用给定URL的SQL注入漏洞,内置了很多绕过插件,支持的数据库是MySQL 、Oracle 、PostgreSQL 、Microsoft SQL Server、Microsoft Access 、IBM DB2, SQ Lite 、Firebird 、Sybase和SAPMaxDB 。
SQLMap采用了以下5种独特的SQL注入技术。
• 基于布尔类型的盲注,即可以根据返回页面判断条件真假的注入。
• 基于时间的盲注,即不能根据页面返回的内容判断任何信息,要用条件语句查看时间延迟语句是否己执行(即页面返回时间是否增加)来判断。
• 基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回到页面中。
• 联合查询注入,在可以使用Union 的情况下的注入。. 堆查询注入,可以同时执行多条语句时的注入。
SQLMap 的强大的功能包括数据库指纹识别、数据库枚举、数据提取、访问目标文件系统,并在获取完全的操作权限时实行任意命令。SQLMap的功能强大到让人惊叹,当常规的注入工具不能利用SQL注入漏洞进行注入时,使用SQLMap会有意想不到的效果。
2 SQLMap安装
SQLMap的安装方式可以自己上网查找,本教程是利用KaliLinux上自带的SQLMap工具进行相关学习与实验,无需自己配置python等基础环境,较简单易上手,如何在虚拟机中安装KaliLinux系统请查看《Kali安装、汉化、创建快照全过程图解》。
3 简单实验
3.1 实验目的
通过一个简单命令来简单介绍SQLMap的使用步骤。
3.2 实验前准备
- 实验前准备准备,在虚拟机中打开两个系统,一个作为靶机,另一个是kali是我们运行SQLMap的系统,将两个系统桥接到同一VMnet下。
- 在靶机上,我们先部署好WEB服务发布网站或搭建其他靶场如sqli-labs等,在本节实验中,靶机系统采用的是CentOS,靶场环境是利用Docker上创建的sqli-labs容器。
- 靶机创建容器后使用本机浏览器输入靶机IP地址,看看能否访问,访问结果如下:
3.3 实验步骤
-
在虚拟机中,打开KaliLinux系统,打开浏览器,输入自己靶机的IP地址进行访问,看看能否正常打开。(如果未能打开请查一下是两个系统是否处于同一局域网中、网站是否发布成功等原因。)
-
在左上角点击菜单进行搜索,输入sqlmap。点击第一个进入,第二个是因为该系统正运行者sqlmap程序。
-
进入后界面如下,其实就是在Kali的终端环境,先是显示着SQLMap的帮助文件,后面就是命令栏。
-
在终端中输入命令:
sqlmap -u "http://192.168.1.8" -level=5
。自行尝试level值为1和5时程序运行的差异情况,下面是运行结果开头的部分,后续还有很长一段就不展示了。
-
当SQLMap执行该命令时,它会执行以下步骤:
1.判断可注入的参数;
2.判断可以用那种SQL注入技术来注入;
3.识别出哪种数据库;
4.根据用户选择,读取哪些数据。 -
通过该命令,我们可以知道了在KaliLinux中,是在终端编辑窗口以sqlmap开头来使用该工具的,在不同命令中添加不同的参数,如-u、 -level等来实现不同的要求。
-
在本专栏博客中,主要以入门知识为主,引领零基础的伙伴了解一些工具的简单操作,会分享sqlmap的简单使用方法,比如:
1.使用该软件来判断目标网站是否存在注入、查询获取数据库的库名表名字段名以及字段内容等信息;
2.解析该软件使用时常用的参数,如-level、-referer、roles等。
4 总结
- 了解进行SQLMap测试实验需要的准备工作;
- 了解SQLMap工具的使用方式。