前言:
本篇文章只学习sqlmap如何使用请不要对互联网上站点进行攻击测试。环境所用系统为:centos6.6,sqlmap版本为0.9,靶机环境为预先搭建好存在漏洞的站点。实验环境模拟发现测试站点有注入漏洞,使用sqlmap工具进行注入尝试最后脱裤的操作。
实验演示:
- 测试站点
点击其中分类发现修改id可以直接进行对应页面跳转,由于在域名后添加 "and 1=2"进行测试,结果如下:
我们发现由于程序没有进行相关过滤,当条件为假时,可以控制SQL命令的返回结果,此时可证明发现的SQL注入缺陷可以被利用。
2.sqlmap工具
知道了注入点接下来使用sqlmap工具进行测试。
注释:这里使用到sqlmap参数的两个参数 --batch 和 -u,--batch参数可以为我们省去交互式的过程默认自己会全部执行下来。-u参数表示扫描的URL连接。
扫描完成后,我们可以看到扫描出了注入漏洞,sqlmap将漏洞的类型和如何使用漏洞代码都告诉了我们,如果需要手工验证复制给出的代码执行即可。
确定了url存在注入漏洞后,我们看下有哪些数据库:
注释:--current-db参数可以获取到有哪些数据库,在执行后我们发现有个叫“lesson”的数据库。
那知道了数据库名,我们继续查看该数据库下有哪些表:
注释:参数-D"数据库名" --tables ,表示指定数据库将起下的表全部列出。这里已经将lesson数据库下的表都罗列了出来。
有了表名可以继续查看表的结构
注释:由于51cto上传图片加了水印,,这里再将代码重新写一下,
sqlmap --batch -D"xxx" -T"xxx" --columns -u "xxxxxxxxxxx"
这里用到的参数是-T 和 --columns,-T的意思和-D相同,这里写的是表名,--columns参数可以获取当前表的结构信息。
现在知道了表结构,我需要看下adm_name和adm_pwd字段的值,那就执行以下操作:
注释:这里用到的参数是 -C "字段名" --dump ,如果有多个字段用“,”分隔即可回车后会进行暴力破解最后看到破解信息,这里看到的都是经过md5加密的数据,需要进行解密才能拿到最后信息,在线破解md5的网站有很多这里就不介绍了。
现在我希望把整个库拿到本地怎么做呢,执行下面的命令:
注释:--dump-all 参数表示把所有的数据库都拖到本地,最后拿到的库会放在output文件夹中。
用法总结:
sqlmap --batch -u "xxxxx" sqlmap --current-db -u "xxxxxx" sqlmap -D"xx" --tables sqlmap -D"xx" -T"xx" --columns sqlmap --dump-all -u "xxxxx"
这里需要注意的是有些站点有WAF设备,batch参数可能会引起WAF的告警所以需要慎用。
个人看法:
到如今互联网安全已经被越来越多的人关注,像实验中的站点漏洞也越来越少了大家都代码的安全都有了一定程度上的重视,过滤了很多危险操作比如and 1=2,‘信息,数据库中密码都进行了加salt来提高安全性这又在一定程度上加大了破解的难度。
写这篇文章知识为了学习技术,知道攻才能更好的防,写的不对的地方还请各位大牛指出。谢谢啦~