sql注入(low),dvwa环境(小白级别)

sql注入(low),dvwa环境

本文章是我自己学习时的一点笔记(刚学一个月),如果解释有错误请指出。

1.我们先选择级别为low,点击Submit
在这里插入图片描述
然后点击SQL Injection 开始我们的实验

2.在文本框当中输入1,我们可以看到在url当中出现id=1的字样。
sql注入有数字型,字符型,搜索型,布尔型(后两种完全不懂)
因为url中是id所以我们暂时当作是数字型
接下来我们在url和文本框中修改都是可以的。(只是在url要转换编码,我不熟暂时不讲,容易丢人)
在这里插入图片描述
2.然后我们试一下and or 大法,因为1=1必为真,结果我们发现没有任何变化,而且显示ID:1 and 1=1/1 or 1=1,这说明我们的猜想可能出错了
在这里插入图片描述在这里插入图片描述

3.我们输入1’尝试一下
在这里插入图片描述
在这里插入图片描述发现报错了,那么我们肯定是这个引号让这个网页出了问题,所以这里应该是字符型(我们去看下源码)
点击View Source
在这里插入图片描述在这里插入图片描述
这里我们可以看到网页请求了id并且直接与前面的字符串连接了,没做任何的处理

$query = "SELECT first_name, last_name FROM users WHERE user_id = ‘1’ ';
运行的代码就会变成这样,后面的单引号没有闭合,所以报错了。(所以猜的没问题)
4.所以我们尝试下字符型的注入(肯定可以的),1’ and ‘1’=‘1/1’ or ‘1’='1

在这里插入图片描述

这里不是没成功,是因为and 需要两个条件同时成立才能回显
在这里插入图片描述
而这里是or 1=1 必为真,所以前面id=?都不要紧

5.接下来我们可以看一下字段数可以使用order by或者union select 查询
(1)我们先尝试下order by
在这里插入图片描述在这里插入图片描述
我们可以看出2回显正常,3就出错了,所以我们可以判断字段是为2

(2)我们尝试下union select
uninon select null,null…… 或者union select 1,2,3……
因为union需要字段类型也一样,所以建议从null开始。(我要偷懒,所以直接1,2,3)
在这里插入图片描述
我们可以看到1’ union select 1,2#有回显,所以字段是为2。大家可以尝试下1或者3会发现报错了。

6.我们使用uninon 查看下user(),database(),version(),得到用户,数据库名,数据库版本
在这里插入图片描述在这里插入图片描述
可以看到用户是root,库名是dvwa,数据库版本是5.7.26

7.在这里插入图片描述
我们使用sql语句查询出数据库存在的库(数据库版本要大于5,才会有information_schema库)

 1' union select 1,schema_name from information_schema.schemata#

解释下这句话。union select联表查询 schema_name(字段) 来自iformation_schema中的schemata表

8.查询dvwa数据库中users的字段(数据库不熟就不过多阐述了)
在这里插入图片描述
在这里插入图片描述
这里获得了很多字段有一个字段是password,一看就挺敏感的,我们去看一下。
在这里插入图片描述
看到了用户名和使用md5加密的密码,知道的太多了。我们再去看一下没加密的密码是什么。
5f4dcc3b5aa765d61d8327deb882cf99为例
去xmd5在线解密一下,到https://www.35rx.com/.中去解密
在这里插入图片描述
解密后发现明文的密码是password.
这篇文章到这里就结束了,下面是我做实验的时候发现的一点错误,给出了解决方法。sql注入漏洞的修补方法就不在这说了,以后会讲。

使用union查询数据库名存在哪些数据库的时候报错了,错误提示->(Illegal mix of collations for operation UNION),后来查了下别人的文章看到了
其实这是一个排序规则的问题,就是规则不一样出错了,因为使用的是union。
解决方法:
第一步点击dvwa中guestbaook和users,是他们的排序规则一致,我这里使用的规则是utf8_general_ci。
第二步点击information_schema中的schemata,里面的排序规则也要一样
在这里插入图片描述在这里插入图片描述在这里插入图片描述不出意外,问题是解决了(我的是可以的,你们要是不行别问我,我数据库也不熟)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值