SQL Injection4(sqlmap)
前言
前面把手工注入算是简单的练习了一遍,这里来学习下sqlmap,感受下工具的强大。主要也是针对dvwa的sql注入和盲注用sqlmap再来一遍,然后试下文件的上传下载等功能。算是对sqlmap的一个入门吧。
参数
sqlmap的参数真的很多,下面这篇博客把所有sqlmap -hh的参数都进行了中文翻译,挺方便后面查阅的
超详细SQLMap使用攻略及技巧分享(里面用的sqlmap版本是1.1.8-8不过参数那些基本和现在1.3.2一样)
实战
我也不知道前面实验时做了什么,数据全被删了(没得恢复,idb文件都没了,reset也没用…这就是传说中的删库跑路???),这时候真的是docker大法好,停掉这个容器重新创建就好了…
下面就开始吧,实践出真知
Low
查找注入点
最简单加上-u 目标,就回车,看看效果
OK这里我们看到了302重定向,跳转到login.php,很好理解需要你重新登录了,因为没有cookie,所以这里把cookie带上,抓个包或者直接浏览器开发者工具来看一下cookie
其次我们在dvwa的日志中可以看到大量的"sqlmap/1.3.2#stable (http://sqlmap.org)",出于对他人的尊重和正确的养成我们把这里也改了吧…查看上面的文档可以看到是改user-agent
–user-agent=AGENT 默认情况下sqlmap的HTTP请求头中User-Agent值是:sqlmap/1.0-dev-xxxxxxx(http://sqlmap.org)可以使用–user-agent参数来修改,同时也可以使用–random-agent参数来随机的从./txt/user-agents.txt中获取。当–level参数设定为3或者3以上的时候,会尝试对User-Angent进行注入
ok,这次再回车,就很正常了,中途会不断询问,先不管了(看英文脑阔疼 里面会让你选择比如现在判断出数据库很可能是mysql,还要不要检测其它类型数据库;现在union注入很大可能不会起作用,还要不要进行union注入等等…)y跳过,然后就出现了下面的结果
我们可以看到成功的返回了服务器操作系统信息,web服务器信息,以及数据库信息(这时候我们登录dvwa后台看也不再看到"sqlmap/1.3.2#stable (http://sqlmap.org)"),然后日志信息(说到这个日志信息,下次对同一个网站用sqlmap它会先去查询这里面的日志)也如上面所说放到了对应的文件夹下
上面还有这些信息,基于布尔的盲注,基于报错,基于时间的盲注。这就是在告诉我们说它尝试了很多次确认前面这些注入都是可行,甚至还提供了payload给你看(但我这里为什么没有union(联合注入呢),我参考别人博客都是有的啊…)
到这里我们就能知道这个网站是存在注入漏洞的,(所有SQL注入第一步都应该