一.反射型XSS漏洞
攻击代码储存在攻击者客户端,以Web服务器为中转站发送含有攻击代码的网页,在用户浏览器上执行攻击代码
攻击过程:
(1)用户正常登录,成功后得到一个会话Cookie
(2)攻击者将含有攻击脚本的URL发送给用户,诱使用户去访问
(3)用户向Web服务器请求攻击者的URL
(4)Web服务器根据URL中的参数将攻击脚本插入到网页中返回给用户
(5)在用户浏览器上执行攻击脚本
反射型XSS会将恶意代码包含在URL参数中,容易被用户察觉,但也可以通过编码转换来伪装
二.存储型XSS漏洞
恶意代码存储在Web服务器,用户浏览该网页时在用户浏览器上执行恶意代码
攻击过程:
(1)攻击者向Web应用程序提交包含恶意代码的数据,恶意代码存储在Web服务器上
(2)用户正常登录,成功后得到一个会话Cookie
(3)用户向Web服务器请求含有恶意代码的URL
(4)Web服务器将包含恶意代码的网页返回给用户
(5)在用户浏览器上执行该网页中所包含的恶意代码
因为攻击代码被保存在一个Web应用程序中,只有用户登录并访问含有存储型XSS漏洞的网页,才可能遭受到存储型XSS漏洞攻击
三.DOM型XSS漏洞
用户接收HTML代码后,由浏览器将恶意代码嵌入到网页并执行,而不是由Web服务器嵌入
攻击过程:
(1)用户正常登录,成功后将得到一个会话Cookie
(2)攻击者将含有攻击脚本的URL发送给用户,诱使用户去访问
(3)用户向Web服务器请求攻击者的URL
(4)Web服务器根据URL中的参数将攻击脚本返回给用户
(5)用户浏览器将攻击脚本嵌入到网页并执行
攻击原理是JavaScript可以访问 HTML DOM,所以可以使用document.url变量访问URL