SQL注入(回显)-DVWA

概述

LOW等级

1、首先尝试正常操作,输入1

可是这里web应用通过查询数据库,获取了id为1的用户的信息,猜测SQL语句为:

2、接下来检测是否存在SQL注入漏洞,输入1’  

报错,则说明单引号注入到SQL语句中报错,存在SQL注入漏洞

尝试数字型,查询结果与id=1时的结果一样

尝试第二种情况,成功执行

尝试双引号,也没有成功

所以可知这里的变量是用单引号来进行闭合的

3、接下来使用order by 确定查询的字段数

通过尝试可得出字段数是2

4、用union select确定回显点

 

5、尝试利用回显点来查询数据库的版本和数据库的目录

同样可以查询数据库的用户名和名称

查询表名

查询列名

查询用户名密码(密码可通过md5解密):

同时也可以读取文件(这里用MySQL的load_file函数)

6、写入webshell

PHP一句话木马,执行cmd参数的值

我们要将该webshell写入物理路径,这里通过引发异常爆出web目录

利用select...into outfile...写入,

尝试访问,写入成功

尝试执行代码system(dir) , system(dir)在PHP中代表用系统命令去执行dir

7、利用sqlmap 

当前用户和数据库名

执行结果

查表名:

查字段名:

用户名和密码

获取webshell

输入物理路径:

执行dir

Medium等级

1、在medium等级中,id号不用我们输入,而是选择,是post请求

 

Tamper date改包

 

发现失效了,我们输入的1'被转义了

尝试输入1"和1'发现都被转义了,尝试没有引号,发现可以成功执行

2、手工利用方法:获取用户名密码

3、medium等级注入技巧

在查询表名时,DVWA的单引号会被转义,可通过HEX编码绕过

4、sqlmap检测

利用

High等级

1、尝试单引号,成功执行,和low等级相同是字符型注入

2、手工利用方法,猜用户名密码

成功读取

3、sqlmap利用

这一等级,注入的点和返回的点不在同一个页面,要用--second -order这个参数来指定返回的页面

sql注入预防

Impossible等级检测了id数据类型,使用预编译绑定id变量,有效防止SQL注入

参数化SQL语句

也可使用存储过程和白名单。                                        

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值