概述
全称为Cross Site Scriptiong,即跨站脚本。发生在目标网站中目标用户的浏览器层面上,当用户浏览器渲染整个HTML文档的过程会出现不被预期的脚本指令并执行时,XSS就会发生。
目标网站的目标用户:强调了场景
浏览器:因为这类攻击都是有浏览器来解释执行的。浏览器会严格执行共同的约定,同源策略,不符合的约定的就不会执行。
不被预期的:就是很可能是攻击者在输入时提交了可控的脚本内容,然后输出后被浏览器解释并执行
“跨站脚本”重要的是脚本
某些时候,并不按浏览器允许的策略执行(同源策略),那就是一次真正意义上的跨站了,跨站脚本突破的是浏览器的同源策略;
XSS的类型
有三类:反射型XSS(也叫非持久型XSS)、存储型XSS(也叫持久型XSS) 、DOM XSS;
- 反射型XSS:浏览器发起请求的时候XSS代码出现在URL中,作为输入提交到服务器,服务器解析后返回给浏览器,最终浏览器解释执行。
- 存储型XSS:存储型XSS和反射型XSS的区别在于,提交的XSS代码会存储在服务端,下次请求目标时不需要再次提交XSS代码;存储XSS代码的攻击是隐蔽的;
- DOM XSS:不需要服务器的参与,由浏览器解释执行;
可能出现XSS攻击的地方
所有可以解析HTML文档和JavaScript文档的环境;
XSS的危害
网页挂马,盗取cookie,盗取用户信息,劫持用户浏览器回话网络钓鱼...