DVWA靶场的XSS解题练习

一,XSS基本原理与分类
XSS 又叫 CSS Cross Site Script ),跨站脚本攻击。因为与 html 中的 css 样式
同,所以称之为 XSS XSS 攻击最终目的是在网页中嵌入客户端恶意代码,最
常用的攻击代码是 JavaScript 语言,但也会使用其他的脚本语言。
XSS 主要分为反射型、存储型、 DOM 型。在 DVWA 靶场中主要也涉及这三
类,在 Pikachu 靶场中,种类延伸更多些。
1.反射型 XSS
反射型 (Reflected Cross-site Scripting ),通常产生于前端;漏洞特征:一次性
的、前端执行、不会储存在后端数据库。反射型跨站脚本也称作非持久型、参数
型跨站脚本。主要用于将恶意脚本附加到 URL 地址的参数中。
数据交互过程:用户输入数据 -> 后端执行 php-> 返回数据给前端并执行(回
显)。
2 .存储型 XSS
储存型 (Stored Cross-site Scripting) ,通常产生于后端;漏洞特征:持久性的、
前端执行、储存在后端数据库。此类 XSS 不需要用户单击特定 URL 就能执行跨
站脚本。攻击者事先将恶意 JavaScript 代码上传或存储到漏洞服务器中。当受害
者浏览包含此恶意 JavaScript 代码的页面就会执行恶意代码。
数据交互过程:用户输入数据 -> 后端执行 php 代码 -> 存入数据库某张表 ->
回数据给 php 页面 -> 回显前端。
3.DOM XSS
DOM 型通常产生于前端、特殊的反射型 XSS 。漏洞特征:一次性的、前端
执行、不会储存在后端数据库。
DOM XSS 原理:客户端的脚本程序可以通过 DOM 动态地检查和修改页
面内容。程序执行不依赖于服务器端的数据,从客户端获得 DOM 中的数据并在
本地执行。浏览器用户可以操纵 DOM 中的一些对象,例如 URL location 等。
用户在客户端输入的数据如果包含了恶意 JavaScript 脚本,而这些脚本没有经
过适当的过滤和消毒,应用程序就可能受到基于 DOM XSS 攻击。
二,DVWA 靶场 DOM XSS
 low 级别
1 ) 漏洞分析
low 级别,我们只看到两个交互按键,一个前端选择,一个提交。点击一下“ select ”,
参数在 url 中。
2 ) 查看页面源码
啥也不干
3 ) 漏洞攻击
url default 参数改为: <script>alert(document.cookie)</script> ,尝试拿到 cookie
4 ) 结果验证
攻击成功
Medium
1 ) 漏洞分析——与 low 一样
2 ) 查看网页源码
查看 GET 的参数是否为 default ,使用 stripo 过滤 default 中的“ <script> ”。发现
即重定向。
3 ) 漏洞攻击
尝试了下 <ScRipt> alert(document.cookie)</script> ,失败,重定向了。那不能用
script ,换成 img 试试 <img src=1 οnerrοr=alert(document.cookie);> 。失败, value
传了。经查询资料, select 标签中只允许内嵌 option 标签,不能内嵌 img 标签。
所以前面要先将 select option 闭合:
</select></option><img src=1 οnerrοr=alert(document.cookie);>
4) 结果验证
攻击成功,拿到 cookie ,但原页面改动明显。
high
1 ) 漏洞分析——与 low 一样
2 ) 查看网页源码
使用 switch case 保证了上传的 default 值。那大概,我们只能在前端
3 ) 漏洞攻击
这里有白名单过滤,加 # 不上传,前端自己玩。
default=#<script>alert(document.cookie)</script>
4 )结果验证
攻击成功

impossible

impossible级别的php代码没有任何东西和low级别一样,保护的代码写在客户端的里面。

大多数浏览器默认将从URL中获取的内容进行编码,而客户端的源代码中直接将编码后的输入插入到了动态页面中(可以与low级别的客户端代码进行比较),从而阻止了执行任何注入的JavaScript。所以,就不存在XSS漏洞。
三、 DVWA 靶场 reflected 型XSS
low
1 ) 漏洞分析
low 级别,我们只看到两个交互按键,一个文本输入框,一个提交按键。输入内容会在 url 中。
2 ) 查看页面源码
啥也不干
3 ) 漏洞攻击
文本框输入 <script>alert(document.cookie)</script> ,点击提交,尝试拿到 cookie
4 ) 结果验证
攻击成功
 medium
1 ) 漏洞分析——与 low 相似
2 ) 查看页面源码
DOM 类似,替换了 <script> ,但不是发现即重定向。那这里可以试一下复写。
3 ) 漏洞攻击
<scr<script>ipt>alert(document.cookie)</script>
<SCript>alert(document.cookie)</script> 也是可以的,大小写不敏感了。
4 ) 攻击验证
攻击成功
high
1 ) 漏洞分析——于 low 相似
2 ) 查看页面源码
使用正则替换了 <script> 。且对大小写不敏感 3 ) 漏洞攻击
换成 img 来攻击: <img src=1 οnerrοr=alert(document.cookie);>
4 ) 攻击验证
攻击成功
四、 DVWA 靶场 stored XSS
low
1 ) 漏洞分析
留言板功能, name ,信息,留言三个功能比较重要。留言内容会在下面保存显示。
clear guestbook 会清除历史留言信息
2 )查看页面源码
除了 mysql 功能,别的几乎啥也没做。有个 trim() 函数,从字符串的两端删除空
白字符和其他预定义字符。 stripslashes() 函数删除反斜杠。
3 ) 漏洞攻击
直接 <script>alert(document.cookie)</script>
4 ) 攻击验证
攻击成功。另外攻击是长期的,在此打开页面,还会进行攻击
medium
1 ) 漏洞分析——与 low 类似
2 ) 源码查看
low 相比, message 里过滤了 xss name 里过滤了 script ,长度不够 js 凑。有
没有大小写过滤要尝试一下
3 ) 先修改前端文本框长度上限。然后 name 里攻击
<SCript>alert(document.cookie)</SCript>
4 ) 攻击验证
攻击成功
high
1 ) 漏洞分析——与 low 类似
2 ) 源码查看
low 相比, name 里严格过滤 script message 过滤 xss
3 message 里无从下手, name 里改用 img 。改长度。
<img src=1 οnerrοr=alert(document.cookie);>
4 ) 攻击验证
攻击成功
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值