XSS:

跨站脚本(英语:Cross-site scripting,通常简称为:XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java,VBScript,ActiveX,Flash或者甚至是普通的HTML。

反射型XSS

参数型XSS,常见的就是在URL中构造,攻击的切入点是URL后面的参数,将恶意链接发送给目标用户。当用户访问该链接时候,会向服务器发起一个GET请求来提交带有恶意代码的链接,造成反弹型XSS。主要是GET类型 。

通过burpsuite抓包,查看到返回包里面存在xss!!!

再次打开正常页面没有xss弹框

存储型XSS

常见的就是在博客留言板、反馈投诉、论坛评论、将恶意代码和正文都存入服务器的数据库。每次访问都会触发恶意代码。

在留言处提交XSS语句,成功弹框。

通过burpsuite抓包,在返回包里发现xss!!!

回到正常页面刷新页面,发现还是有弹框

DOM-XSS

DOM—based XSS漏洞是基于文档对象模型Document Object Model,DOM)的一种漏洞。DOM就是一个树状的模型,你可以编写Javascript代码根据dom一层一层的节点,去遍历/获取/修改对应的节点、对象、值。

DOM-XSS特点:
DOM-XSS意味着一个xss漏洞出现在DOM中而不是网页的一部分。在反射型和存储型xss中,可以在服务器的返回网页中看到xss payload,但是在DOM-XSS中,HTML源码和攻击后返回的网页完全相同,只有在动态运行或调查网页的DOM树时才能看到xss payload。
DOM-XSS取决于输出位置,并不取决于输出环境,因此DOM-XSS既有可能是反射型,也有可能是存储型。

在dvwa靶场的DOM-xss上构造xss语句,成功弹框。

通过burpsuite抓包,在返回包里面没有发现xss!!!

区别

1、DOM-XSS是由于浏览器解析机制导致的漏洞,服务器不参与,而存储型与反射型都需要服务器响应参与。
2、最直观的区别(burpsuite抓包):
存储型XSS:你发送一次带XSS代码的请求,以后这个页面的返回包里都会有XSS代码;
反射型XSS:你发送一次带XSS代码的请求,只能在当前返回的数据包中发现XSS代码;
DOM-XSS:你发送一次带XSS代码的请求,在返回包里找不到XSS代码;