dvwa靶场Dom型xss通关
·
黑盒操作
LOW
一、这是一个选项框内容,发现输入内容会直接改变选项内容,查看代码后发现==js==代码

// 这是通过字符串拼接创建出页面显示选项
if (document.location.href.indexOf("default=") >= 0) {
// 拼接document.location.href.indexOf():获得下标提取具体显示字段
var lang = document.location.href.substring(document.location.href.indexOf("default=") + 8);
document.write("<option value='" + lang + "'>" + decodeURI(lang) + "</option>");
document.write("<option value='' disabled='disabled'>----</option>");
}
// 下面是其他选项
- 通过
URL地址中的default值来拼接页面显示,那测试的payloay直接输入到url中 - 存在
js操作页面的DOM元素,那就可能存在DOM型xss - 直接输入payload看效果
URL/?default=<script>alert(1)</script>
- 判断存在
xss漏洞
二、判断提交数据是否经过了后端代码的处理
- 地址栏中输入内容后页面刷新,网页出现了弹框,且地址栏中信息没有变化
- 这里推测是完全没有后端代码处理,表明后端没有任何操作
三、页面未作任何过滤,存在DOM型xss漏洞,且后端为做任何处理
Medium
一、页面代码没有变,直接输入payload
?default=<script>alert(1)</script>
- 页面刷新,但无弹框,URL地址变化。
- 判断出后端完全过滤了
script标签,且判断出了存在了script标签,直接定向选项为==English==
二、尝试其他标签
输入payload
URL/?default=<img src=1 onerror=alert(1)>

得出:地址栏中的URL没有变化,但网页代码中存在输入值,可是被url编码了
- 那就是判断出后端只过滤了script标签
- 页面有显示但是被编码了,那就是语句中没有闭合先前标签
重新输入payload
URL/?default="></option></select><img src=1 onerror=alert(1)>
// 先闭合正常的option标签,js代码是以select为块级元素处理的,所以这里闭合他
- 存在xss漏洞
三、存在DOM型xss漏洞,后端只过滤了script这一个特殊标签
High
一、页面代码无变化,先输入内容在判断
?default=English"></option></select><img src=1 onerror=alert(1)>
得到:页面刷新,地址变化,选项显示English
- 页面刷新和地址变化,证明数据提交到后端且过滤了特殊标签,且重定向选项为English
二、后端会过滤,那就不提交数据到后端
- #:在URl地址中是为了跳转到指定的位置锚点标识符
?default=English#<img src=1 onerror=alert(1)>
存在xss漏洞
三、后端获取到GET请求后过滤用户输入的书友标签,有无直接指定为Englist,但前端页面存在xss漏洞
Impossilble
一、输入payload
?default=English#<img src=1 onerror=alert(1)>
页面刷新地址无变化,表明后端不处理数据
那就只有前端做防护
二、尝试其他

查看页面代码,发现存在编码
那就是闭合方式的问题了
=English#'></option></select><img scr=1 onerror=alert(1)>

页面也存在编码,那就是前端对输入信息进行了特殊编码
三、前端对用户输入的内容做了编码,防止了xss漏洞
#####DVWA – 003
更多推荐

所有评论(0)