[学习笔记]SQL注入工具实践——sqlmap

在firefox中启用插件Tamper Date for FF Quantum(原测试插件使用Tamper Date,而本博客撰写时已下架).
tamper date for ff quantum
在DVWA的SQL injection模块中随意测试一个字符并提交,Tamper Date插件会抓取这个请求。
请求详细信息从这个抓取到的信息中获取URL和cookie。因为sqlmap扫描的时候会重定向要认证的页面,只有拿到当前的回话cookie,才能在这个漏洞页面进行持续扫描。

  • 开始注入攻击

执行sqlmap -u '_url' --cookie='_cookie'命令开始扫描。

参数:-u或者–url

格式:http(s://targeturl[:port]/[…]

HTTP cookie头

参数:–cookie,–load-cookies,–drop-set-cookie

这个参数在以下两个方面很有用:

1、web应用需要登陆的时候。

2、你想要在这些头参数中测试SQL注入时。

可以通过抓包把cookie获取到,复制出来,然后加到–cookie参数里。

在HTTP请求中,遇到Set-Cookie的话,sqlmap会自动获取并且在以后的请求中加入,并且会尝试SQL注入。

如果你不想接受Set-Cookie可以使用–drop-set-cookie参数来拒接。

当你使用–cookie参数时,当返回一个Set-Cookie头的时候,sqlmap会询问你用哪个cookie来继续接下来的请求。当–level的参数设定为2或者2以上的时候,sqlmap会尝试注入Cookie参数。
参考:https://www.cnblogs.com/hongfei/p/3872156.html

命令执行结果…扫描信息
扫描信息出现两个询问信息:
第一个信息说明扫描到的后端数据库管理系统(DBMS)可能是MySql,询问是否要跳过测试其它的DBMS,这里选择y,跳过。
第二个询问在接下来的测试中是否要包含所有MySql扩展所提供的level 1和risk 1的测试,选择了y(写博客的时候认为应该选择n)。

Detection:
These options can be used to customize the detection phase
–level=LEVEL Level of tests to perform (1-5, default 1)
–risk=RISK Risk of tests to perform (1-3, default 1)

参数:–level

共有五个等级,默认为1,sqlmap使用的payload可以在xml/payloads.xml中看到,你也可以根据相应的格式添加自己的payload。

这个参数不仅影响使用哪些payload同时也会影响测试的注入点,GET和POST的数据都会测试,HTTP
Cookie在level为2的时候就会测试,HTTP User-Agent/Referer头在level为3的时候就会测试。

总之在你不确定哪个payload或者参数为注入点的时候,为了保证全面性,建议使用高的level值。 风险等级

参数:–risk

共有四个风险等级,默认是1会测试大部分的测试语句,2会增加基于事件的测试语句,3会增加OR语句的SQL注入测试。

在有些时候,例如在UPDATE的语句中,注入一个OR的测试语句,可能导致更新的整个表,可能造成很大的风险。

测试的语句同样可以在xml/payloads.xml中找到,你也可以自行添加payload。
参考:https://www.cnblogs.com/hongfei/p/3872156.html

可注入点注入点信息从扫描信息中可以看到已经扫描出了一些可注入的漏洞。
出现一条询问信息,信息说明参数id存在sql注入点,是否继续测试,选y。
扫描结果 出现一条询问信息,大概就是建议不要继续测试了,询问是否跳过,选y。
最后得到扫描结果,包括注入点,后台数据库版本,服务器操作系统版本,使用的web技术,并将数据信息存放到/root/.sqlmap/output/www.dvssc.com文件中。

  • 获取数据库名

执行命令sqlmap -u '_url' --cookie='_cookie' --dbs -v 0获取数据库名

–dbs Enumerate DBMS databases
-v VERBOSE Verbosity level: 0-6 (default 1)

0:只显示python错误以及严重的信息。

1:同时显示基本信息和警告信息。(默认)

2:同时显示debug信息。 3:同时显示注入的payload。

4:同时显示HTTP请求。

5:同时显示HTTP响应头。

6:同时显示HTTP响应页面。

执行命令执行结果使用sqlmap的–dbs选项就可以根据所识别的不同数据库管理系统类型,来探测所包含的的数据名称,除了发现Mysql默认的系统数据库information_schema之外,在结果中显示了web应用的数据库,dvwa。

  • 获得表名

执行命令sqlmap -u '_url' --cookie='_cookie' -D dvwa --tables获取表名。

-D DB DBMS database to enumerate
–tables Enumerate DBMS database tables

执行命令执行结果从执行结果中可以看到数据库dvwa中的两个数据表,guestbook和users,且扫描结果已存入文件中。

  • 获取表中的字段

执行命令sqlmap -u '_url' --cookie='_cookie' -D dvwa --tables -T users --columns获取users表中的列名。

-T TBL DBMS database table(s) to enumerate
–columns Enumerate DBMS database table columns

执行命令执行结果执行结果成功获取了表users的字段,可以看到其中包含password字段。

  • 导出password列的内容

执行命令sqlmap -u '_url' --cookie='_cookie' -D dvwa --tables -T users --columns --dump获取users表中password列的数据。

–dump Dump DBMS database table entries

执行命令
执行结果执行结果出现两个询问信息:
第一条询问是否要将hash存入一个临时的文件,选择y。
第二条信息询问是否要基于字典进行破解,选择n(如果有好的字典可以选择y)。
执行结果成功的将数据保存到了本地文件,也就是所谓的“拖库”,但是这个数据库保存的密码进行了加密。(看字段形式可以判断是MD5?)
最后进行使用MD5彩虹表破解密文形式的密码。
所有保存的文件都在/root/.sqlmap/output/www.dvssc.com目录下。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值