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)
相关推荐
变与不变8069 小时前
jQuery细节以及使用应用场景
前端·javascript·jquery
跨境联盟10 小时前
大健康实体如何搭建产品差异化:对比普通营养品与合规跨境膳食补充剂服务模式
数据库·ai·健康医疗·健康管理·精准营养
有想法的py工程师10 小时前
PostgreSQL EXPLAIN中的Cost模型分析(random_page_cost参数):优化器眼中的代价世界与执行计划生成
数据库·postgresql
前进的李工10 小时前
飞书企业知识库设计+后端高频八股
数据库·redis·后端·mysql·性能优化·飞书·rag
TechWayfarer10 小时前
PHP漏洞被利用,怎么揪出攻击IP?
开发语言·python·tcp/ip·网络安全·php
Young Doro11 小时前
从 DV 表示到 MI 下界,再到“置换技巧“(含“指数倾斜“完整推导)
笔记
SailingCoder11 小时前
【封闭结束1】端到端交付:Agent 一次请求如何走完全链路
前端·安全·ai·面试·agent·harness
泡海椒11 小时前
JQuick-SQL CSV 文件数据接入:转换为内存表后再查询
数据库·sql
终端安全笔记11 小时前
一份配置管十项 AI 功能:它关的是入口,不是数据
网络安全·ios·移动设备管理
为思念酝酿的痛12 小时前
MySQL数据类型
数据库·mysql