目录
  1. 1. sqlmap 工具使用总结
    1. 1.1. 安装sqlmap
    2. 1.2. sqlmap常用参数
    3. 1.3. sqlmap使用注意事项
sqlmap 工具使用总结

sqlmap 工具使用总结

sqlmap是一款简单好用的自动化测试sql注入类漏洞的工具,本片将讲解笔者在学习过程中总结的该工具的安装使用方法。

安装sqlmap

安装sqlmap前需要安装python换将,需要注意的是,部分版本的sqlmap不支持python 3版本,因此需要安装python 2.X 才能运行,如果已经安装了python 3,为了避免冲突,在重新安装python 2.X 后,可以进入到python 2安装目录,并将python.exe 和pythonw.exe 两个文件重新命名如下图所示,之后想要以python 2来运行某个脚本时,仅需以‘python2 xxx’的格式即可。
修改执行文件后缀
前往官网并下载压缩包(sqlmap下载地址)后解压到本地,之后进入到本地文件夹并在命令行中打开,输入’python2 sqlmap.py -h’,可以看到安装成功,能够正常使用sqlmap工具。
测试能否使用

sqlmap常用参数

这一节列出了笔者当前接触过的一些sqlmap参数,这些参数较常使用,之后遇到的有用的参数也会逐渐补充进来。

测试目标 说明
-u 后接需要注入的url链接
-r 后接使用burp导出的请求包,一般为txt文件
--second-url 后接二阶注入时,返回输出的页面
--cookie 对于需要登陆才能访问的页面,需加入cookie参数
接着为测试范围常用的参数,通常默认设置无法注入成功时,可以尝试提高level参数继续测试。
测试范围 说明
--level=1 设置测试的等级,默认为1
--level=2 测试中加入对cookie的注入
--level=3 测试中加入对user-agent的注入
--level=4 测试中加入对refere的注入
--level=5 测试中加入对host的注入
在知道测试系统的部分组件信息的情况下,还可以指定测试的数据库和操作系统等。
指定组件 说明
--dbms= 后接使用的数据类型及版本
--os= 后接使用的操作系统
最后,需要指定输出的参数
输出参数 说明
-a, --all 输出目标系统数据库所有参数
--is-dba 判断当前是否拥有管理员权限
--current-user 输出当前数据库用户
--current-db 输出当前数据库
--users 输出所有用户
--dbs 输出所有数据库
-D xxx --tables 输出指定数据库中的表
-D xxx -T xxx --columns 输出指定表中的列及数据类型
--count 返回查询数据的个数
--dump 列举数据并保存到本地文件,同时会给出文件路径

sqlmap使用注意事项

使用sqlmap工具前需要判断注入页面提交参数使用的方法,若为get方法,即在url链接中直接包含有参数名及数值等便可直接使用’-u’参数后接该链接即可,当然,如果被测试的页面需要认证登录才可访问,则需要利用burp抓包找到对应的cookie,并将cookie参数加入测试命令中才能够正常开始测试。例如:python2 sqlmap.py -u “xxxxx” –cookie “xxxx” –current-user。
若被测试的链接提交参数的方法为post,即链接中不包含有任何参数,则有两种方法进行注入。其一是在url后面加上参数的键值对,即形如’sqlmap -u “192.168.216.147/checklogin.php” --data “myusername=admin&mypassword=admin&Submit=Login” –dbs’。其二是通过burp抓包,并将其导出为txt格式的文本,随后在sqlmap中利用’-r’参数对该文本进行注入测试。带出文件的方法如下图所示:
导出数据包
同时,有时候会出现页面可被注入的参数过多导致注入未成功的现象,这个时候可以利用在参数后面加上’*’,来指引sqlmap针对性的测试该参数,加大注入成功的可能性。
指定测试参数

文章作者: Zhaoyh
文章链接: https://zhaoyh222.github.io/2019/11/04/sqlmap/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Zhaoyh's blog
打赏
  • 微信
  • 支付宝