dvwa10——XSS(DOM)
XSS攻击:
- DOM型XSS
- 只在浏览器前端攻击
- 触发:修改url片段
- 代码不存储
- 反射型XSS
- 经过服务器攻击
- 触发:可能通过提交恶意表单,连接触发
- 代码不存储
- 存储型XSS
- 经由服务器攻击
- 触发:可能通过提交恶意表单,连接触发
- 代码存储
这一关有关于DOM型XSS攻击,是完全发生在浏览器url栏中的攻击
LOW
查看源码,没有发现任何过滤
界面上的select一下,观察url栏的变化
http://10.24.8.102/DVWA/vulnerabilities/xss_d/?default=English
我们在等号后面进行改动,这样浏览器就会把我们输入的内容当成网页的一部分来执行
在url栏里加上javascript的内容,这个alert是javascript的内置函数,作用是在浏览器中弹出对话框
http://10.24.8.102/DVWA/vulnerabilities/xss_d/?default=<script>alert<'im lee'>;</script>
f12在查看器的html里也可以看到我们插入的代码被成功执行了
MEDIUM
分析源码:
红框内使用stripos()函数检测了 <script 标签,不区分大小写,并且一旦发现含有<script 的恶意输入,立马重定向到english页面
过滤不全面,我们还可以通过其他 html 标签触发xss,例如
<img src=x onerror=alert('im lee');>
img是html的图像标签,src是img的属性,onerror是<img>标签的事件处理器,在图片加载失败的时候触发,也就是说我们想要的内容会在图片加载失败的警告框里面出现
我们让src=x,这里的x是一个无效的图片路径
输入之前没产生回显,所以进一步检查页面的html,发现代码在option里面,但img无法嵌套在option内,所以我们要把select和option标签都闭合,
也就是在刚才的代码前插入这个
</select></option><img src=x onerror="alert('im lee')">
回显成功:
HIGH
分析源码,添加了白名单验证,如果输入的不是四者之一,就会重定向到English的页面
这一关的方法是用字符#,#及以后的内容称为“片段标识符”,浏览器不会把这部分内容发送到服务器,也就意味着不会被过滤,只会在客户端本地处理
构造payload如下
?default=English#<script>alert('im lee')</script>
回显成功
IMPOSSIBLE
分析源码:
直接在客户端处理了,url里输入什么都没有用