SQL注入(回显)-DVWA

概述

SQL注入(回显)-DVWA_第1张图片

SQL注入(回显)-DVWA_第2张图片LOW等级

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

SQL注入(回显)-DVWA_第3张图片

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

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

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

SQL注入(回显)-DVWA_第4张图片

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

SQL注入(回显)-DVWA_第5张图片

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

SQL注入(回显)-DVWA_第6张图片

尝试双引号,也没有成功

SQL注入(回显)-DVWA_第7张图片

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

SQL注入(回显)-DVWA_第8张图片

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

SQL注入(回显)-DVWA_第9张图片SQL注入(回显)-DVWA_第10张图片

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

4、用union select确定回显点

SQL注入(回显)-DVWA_第11张图片

 

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

SQL注入(回显)-DVWA_第12张图片

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

SQL注入(回显)-DVWA_第13张图片

查询表名

SQL注入(回显)-DVWA_第14张图片

查询列名

SQL注入(回显)-DVWA_第15张图片

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

SQL注入(回显)-DVWA_第16张图片

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

SQL注入(回显)-DVWA_第17张图片

6、写入webshell

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

SQL注入(回显)-DVWA_第18张图片

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

SQL注入(回显)-DVWA_第19张图片

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

SQL注入(回显)-DVWA_第20张图片

尝试访问,写入成功

SQL注入(回显)-DVWA_第21张图片

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

SQL注入(回显)-DVWA_第22张图片

7、利用sqlmap 

SQL注入(回显)-DVWA_第23张图片

SQL注入(回显)-DVWA_第24张图片

当前用户和数据库名

SQL注入(回显)-DVWA_第25张图片

执行结果

SQL注入(回显)-DVWA_第26张图片

查表名:

SQL注入(回显)-DVWA_第27张图片

SQL注入(回显)-DVWA_第28张图片

查字段名:

SQL注入(回显)-DVWA_第29张图片

SQL注入(回显)-DVWA_第30张图片

用户名和密码

SQL注入(回显)-DVWA_第31张图片

SQL注入(回显)-DVWA_第32张图片

获取webshell

SQL注入(回显)-DVWA_第33张图片

输入物理路径:

SQL注入(回显)-DVWA_第34张图片

执行dir

SQL注入(回显)-DVWA_第35张图片

Medium等级

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

SQL注入(回显)-DVWA_第36张图片

 

Tamper date改包

SQL注入(回显)-DVWA_第37张图片

 

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

SQL注入(回显)-DVWA_第38张图片

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

SQL注入(回显)-DVWA_第39张图片

SQL注入(回显)-DVWA_第40张图片

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

SQL注入(回显)-DVWA_第41张图片

SQL注入(回显)-DVWA_第42张图片

3、medium等级注入技巧

SQL注入(回显)-DVWA_第43张图片

SQL注入(回显)-DVWA_第44张图片

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

SQL注入(回显)-DVWA_第45张图片

SQL注入(回显)-DVWA_第46张图片

SQL注入(回显)-DVWA_第47张图片

4、sqlmap检测

SQL注入(回显)-DVWA_第48张图片

SQL注入(回显)-DVWA_第49张图片

利用

SQL注入(回显)-DVWA_第50张图片

SQL注入(回显)-DVWA_第51张图片

High等级

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

SQL注入(回显)-DVWA_第52张图片

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

SQL注入(回显)-DVWA_第53张图片

成功读取

SQL注入(回显)-DVWA_第54张图片

3、sqlmap利用

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

SQL注入(回显)-DVWA_第55张图片

SQL注入(回显)-DVWA_第56张图片

SQL注入(回显)-DVWA_第57张图片

SQL注入(回显)-DVWA_第58张图片

sql注入预防

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

SQL注入(回显)-DVWA_第59张图片

参数化SQL语句

SQL注入(回显)-DVWA_第60张图片

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

你可能感兴趣的:(DVWA)