初识XSS
0x01 什么是XSS
跨站脚本(Cross Site Scripting,XSS),由于CSS已经是层叠样式表的缩写所以跨站脚本缩写为XSS。XSS是指攻击者将恶意脚本代码(一般是JavaScript)嵌入到网页中,当用户浏览该网页时恶意脚本将在浏览器上执行。
XSS产生的主要原因还是web程序对用户的输入过滤不足,导致恶意代码成功嵌入网页。XSS属于客户端攻击,受害者是用户(但是注意,网站管理员也可以是用户)。
0x02 XSS的危害
- 网络钓鱼
- 窃取用户信息(如cookie,浏览记录,IP地址等)
- 浏览器(会话)劫持
- 恶意弹窗(广告弹窗)
- 网页挂马
- 劫持大量客户端,发起DDoS攻击
- 结合其他漏洞,实施进一步攻击
- XSS蠕虫
等等......
0x03 XSS的分类
反射型XSS
反射型XSS也称非持久性XSS,是最容易出现的一类XSS漏洞。主要是将恶意脚本附加到URL参数中,用户访问该链接后,服务器接处理数据后,将带有XSS代码的数据返回给客户端,浏览器在解析了这段带有XSS代码的数据,造成XSS漏洞。
存储型XSS
存储型XSS是最危险的一种跨站脚本,可能影响到Web服务器自身的安全。
与反射型XSS相比较,存储型XSS更加隐蔽,并且不需要用户主动触发,攻击者事先将恶意脚本上传并存储在漏洞服务器中,只要用户浏览该页面就会执行恶意代码。
DOM XSS
DOM XSS不需要与客户端交互,它只发生在客户端处理数据的阶段,因此此类XSS最难发现。
DOM XSS是利用javascript修改DOM树,达到将恶意脚本嵌入页面的目的。DOM即文档对象模型,DOM允许脚本动态的地访问和更新文档内容,结构和样式。
当DOM树更新后,浏览器会自动重新渲染页面,而此时嵌入地恶意脚本就会被触发。