DVWA(SQL注入-low,medium,XSS反射-low)

一.SQL注入(low)

1.已知漏洞点如图所示,我们的实验目标是获得这个表中的用户名和登录密码,所以我们首先要知道这个表的列数。我们先注入一下

'or'1'='1

得到了五个用户信息,确定注入生效。

2.接着我们要去确定这个数据表的列数,这里的分隔符号只能用#,因为输入框里打的 +,浏览器提交时会把整个内容照原样编码,+ 传到服务器还是 + 本身,没有被解码成空格------所以注释没生效。我们可以修改by之后的数值,直到报错。然后最后一个没有报错的数值就是我们这个表的列数,确定为2

3.然后我们要确定出口:页面上哪几个位置会把查询结果显示出来。

1' union select 1,2#

得到信息:First name 是第 1 列的出口,Surname 是第 2 列的出口

4.然后我们要知道自己在哪一个数据库当中:确定当前库为dvwa

1' union select version(),database()#

5.接着我们要去查询这个数据库里面存在哪些表

1' union select table_name,2 from information_schema.tables where table_schema='dvwa'#

但是这样查询的返回结果出现错误

这是 MySQL 5.7 经典的排序规则(collation)打架:我们查的 information_schema 目录库和 dvwa 库的字符编码规则不一致,UNION 拼接时对不上。

直接指定和 dvwa 库一致的排序规则:

1' union select convert(table_name using utf8) collate utf8_general_ci,2 from information_schema.tables where table_schema='dvwa'#

6.得到表的数据库的信息之后,我们直接去读取users表中的内容

1' union select user,password from users#

然后这里的Surname其实是md5密码,后面直接Md5解密就可以了,这里附一份MD5解密地址:https://www.somd5.com/

二.SQL注入(medium)

1.这个SQL注入的等级就要高一点,有一点难度了,就不是直接在这个框里面注入,而是要使用BP抓包进行注入。首先看这个题目,就只有一个选择用户ID的选项框,我们直接把这个页面的地址在BP内置浏览器中打开,然后随便选择一个ID,用BP抓包

2.我们在ID这个地方进行注入,和上面一个题目的思路方法是一样的,首先要判断有多少列。但是现在我们和之前的操作一样进行的时候发现这里存在报错,看报错细节:\ ' order by 2------ ' 被服务器加了反斜杠转义(这就是 Medium 的防御手段)。但注意报错里 ' 前面没有包着它的引号,说明 Medium 的 SQL 里 id 是裸拼进数字位置的:所以我们这里是不能存在单引号的

然后我们删除单引号之后继续执行这个操作返回结果正常

3.然后我们要继续查看两个位置的输出和上面一个题目是一样的,接着是查看数据库的信息,然后我们继续查看数据库中存在那些数据表,和上一题同样的操作

把后面的 Submit 参数也注释掉了,但服务端逻辑不依赖它所以不影响

id=1 union select convert(table_name using utf8) collate utf8_general_ci,2 from information_schema.tables where table_schema=database()#&Submit=Submit

4.得到这些信息之后去查看users表的内容,获得登录账户和密码,解决问题

三.XSS反射 (low)

1.一句话原理:SQL 注入是把 SQL 塞进数据库查询里,XSS 是把 JavaScript 塞进网页里------页面把你输入的内容原样回显出来,浏览器就把它当代码执行了。

2.在这里我们直接输入JS命令

javascript 复制代码
<script>alert(1)</script>

把 alert(1) 里的 1 换成:可以得到别人的cookie

javascript 复制代码
alert(document.cookie)
相关推荐
Access开发易登软件2 小时前
Access 导入 Markdown 表格:把文档里的数据写进表
前端·html·vba·markdown·access开发
CHEEVEN_QY2 小时前
搅拌摩擦焊FSW工艺参数对焊缝成形影响的实验研究10.1
linux·服务器·数据库
帷幕落秋2 小时前
Redis哨兵模式
运维·数据库
扶风ff2 小时前
求职笔试资料太散?用练题簿在线刷题,按岗位整理练习清单
前端·学习·小程序
浪浪山_大橙子2 小时前
公司里的 AI,终于不只会聊天:我用 GPT‑6 把企业工作伙伴开源了
前端·后端·面试
琹箐2 小时前
命令行调用接口
前端
ly76892 小时前
Redis 主从复制全解析:从 PSYNC 协议到复制积压缓冲区的故障切换边界
java·数据库·redis·主从复制·故障切换·psync
夜雪一千3 小时前
MySQL 中什么是条件注释
数据库·mysql
可乐鸡翅yeah_3 小时前
AES‑128 加密 M3U8,IV 初始化向量新手容易踩坑
前端·网络·数据库·ffmpeg·音视频·m3u8在线