XSS漏洞类型:
反射型(非持久):主要用于将恶意代码附加到URL地址的参数中,常用于窃取客户端cookie信息和钓鱼欺骗。
存储型(持久型):攻击者将恶意代码注入到Web服务器中并保存起来,只要客户端访问了相应的页面就会受到攻击。
DOM型:利用浏览器的DOM特性,不是向浏览器发请求而是直接通过在本地执行从而修改或窃取本地的信息。
使用场景:
直接嵌入html<script>标签中
元素标签事件<body οnlοad=alert(‘xss’)>
图片标签<img>
框架标签<iframe>
DOM对象
Low级:
检测:
最基本的检测方法是先输入数据提交,看返回的内容是不是还是原来的内容,若是则很大可能存在漏洞。有时候返回的网页信息可能没有显示原来输入的内容,但是可以通过查看网页源代码可以查看输入的内容有没有注入到网页的html代码中,若有则也明显存在XSS反射型漏洞。
<script>alert('xss')</script>
<a href=https://www.baidu.com>click</a>
<a href=’’ οnclick=alert('xss')>type</a>
去相应的网站访问不到相应的图片文件时就报错弹窗:
<img src=http://10.10.10.137/alan.jpg οnerrοr=alert('xss')>
在DVWA中输入任何内容都会得到原来的内容,直接提交JS代码<script>alert('xss')</script>可见直接回弹框显示xss:
至于为何能够执行代码可以用Burpsuite抓包来看一下:
GET方法将js代码的一些空格等符号进行url编码然后一同放在URL上提交给服务器。
在服务器返回的页面中,正如测试时的一样,将原来的内容原封不动地返回,可以看到输入的js代码在返回页面的html代码中,而js代码是可以嵌入在html代码中执行的,其中嵌入的是一个alert()弹窗功能的函数,因而弹窗出来显示xss。