定义
跨站脚本攻击(Crossing Site Script),本来缩写是CSS,但是为了和层叠样式表(Cascading Style Sheet,CSS)有所区别,所以在安全领域叫做“XSS”。
XSS是指黑客通过“HTML注入”篡改了网页,插入了恶意的脚本,从而在浏览网页时,控制用户浏览器的一种攻击。XSS属于客户端攻击,受害者最终是用户。
XSS攻击是在网页中嵌入客户端恶意脚本代码,这些恶意代码一般使用JavaScript语言编写的。所以,JavaScript能做到什么效果,XSS的威力就有多大。
XSS的分类
反射型XSS
反射型XSS只是简单地把用户输入的数据“反射”给浏览器。也就是说,黑客往往需要诱使用户“点击”一个恶意链接,才能攻击成功。反射型XSS也叫做“非持久型XSS”(Non-presistent XSS)。
存储型XSS
存储型XSS会把用户输入的数据“存储”在服务器端,这种XSS具有很强的稳定性。存储型XSS通常也叫做“持久型XSS”(Presistent XSS),因为从效果上来说,它存在的时间是比较长的。这种XSS是最危险的一种XSS。
存储型XSS与反射型、DOM型不同,不需要用户手动去触发。
DOM Based XSS
通过修改页面的DOM节点形成的XSS,称之为DOM Based XSS。
XSS的高级利用
- 盗取用户Cookie;
- 修改网页内容;
- 网站挂马;
- 利用网站重定向;
- XSS蠕虫。
参考资料:《白帽子讲Web安全》、《Web安全深度剖析》。