由于Waf防火墙等原因,攻击服务器已经变得十分困难了,所以攻击者逐渐把目光聚焦在了客户端上。
XSS简介
跨站脚本(cross site script)为了避免与样式css混淆,所以简称为XSS。
XSS是一种经常出现在web应用中的计算机安全漏洞,也是web中最主流的攻击方式(占比40%)。
XSS是指恶意攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去。使别的用户访问都会执行相应的嵌入代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。比如你提交的是一串JS代码。
举例说明
我在论坛上面正常发表评论,小明来访问网站,看到了我的评论,这就是正常的,没有XSS。
如果我提交了类似于<script>console.log(document.cookie)</script>
的评论,然后小明访问了网站,这段脚本在小明的浏览器执行,我的脚本就可以任意操作小明的 cookie,而小明是不知道的,有了 cookie,我就可以跨域伪造他的登录信息,访问他的各种隐私了。
XSS攻击的危害
- 盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
- 控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
- 盗窃企业重要的具有商业价值的资料
- 非法转账
- 强制发送电子邮件
- 网站挂马
- 控制受害者机器向其它网站发起攻击
原理解析
造成XSS的主要原因
过于信任客户端提交的数据!
反射型xss攻击(Reflected XSS)
又称为非持久性跨站点脚本攻击,它是最常见的类型的 XSS 。漏洞产生的原因是攻击者注入的数据反映在响应中。一个典型的非持久性 XSS 包含一个带 XSS 攻击向量的链接(即每次攻击需要用户的点击)。一般以搜索框的形式出现。
存储型XSS(Stored XSS)
又称为持久型跨站点脚本,它一般发生在 XSS 攻击向量(一般指XSS攻击代码)存储在网站数据 库,当一个页面被用户打开的时候执行。每当用户打开浏览器,脚本执行。持久的XSS相比非持久性XSS攻击危害性更大, 因为每当用户打开页面,查看内容时脚本将自动执行。谷歌的orkut曾经就遭受到XSS攻击。
脚本类型
HTML标签
iframe 元素会创建包含另外一个文档的内联框架(即行内框架)。
img 元素向网页中嵌入一幅图像。