前言
本篇将围绕XSS展开,着重介绍什么是XSS,XSS攻击漏洞产生的原因以及XSS的类型,最后简述XSS攻击漏洞造成的危害。
什么是XSS
所谓的XSS英文名为Cross-site scripting,翻译过来是跨站点脚本,缩写本应该是CSS,奈何“生不逢时”。由于此CSS容易与前端的CSS冲突,于是只得改为XSS。由跨站点脚本这个中文名也能看出来,XSS本体为脚本,不过这个脚本有些特殊,而这个特殊点就在这个“跨”字上。
正常来讲,一个用户浏览网页是难以影响其它用户的。但攻击者可以利用网站的漏洞在特定网页嵌入恶意脚本,然后在特定情境下触发该脚本执行,从而影响到其它用户。因此这个跨既是不同用户浏览的网页,也包含时间上的跨越。
所以XSS可以理解为特定用户嵌入在网页中的、在特定情境下被执行的恶意脚本。
产生XSS攻击漏洞的原因
XSS攻击漏洞产生的原因归根结底还是过滤方面的问题。如果网站开发者对用户提交的参数处理不谨慎就直接将其包含在当前或之后的HTTP响应中,就会产生XSS攻击漏洞。
攻击者可以通过搜索栏、评论栏等地方对网页嵌入恶意代码,也可以通过修改HTML标签达到写入恶意脚本的目的。
XSS的类型
XSS的类型有如下三种:
反射型XSS
反射型XSS关键点体现在反射上。当攻击者嵌入的恶意代码被立即包含响应在HTTP请求中时产生的XSS就是反射型XSS。由于反射型XSS是立即被执行的,因此无须等待其它用户来触发。这也导致了反射型XSS往往是一次性的,无法持续利用。
存储型XSS
存储型XSS关键点反映在存储上。当攻击者嵌入的恶意代码没有被立即包含在响应中,而是包含在以后的特定情境下被其它用户触发时响应的XSS就是存储型XSS。由于存储型XSS具有很长的潜伏期,因此存储型XSS有很强的隐蔽性,并且可以被其它不同的用户持续重复触发。
基于DOM的XSS
在讲基于DOM的XSS类型之前先来大致了解什么是DOM。DOM是前端开发用到的一种模型,可以将网页中的元素标签形成树的结构。而基于DOM的XSS就是通过修改DOM树中元素标签来写入恶意代码。因此基于DOM的XSS实际上就是一种特殊类型的存储型XSS。
XSS攻击漏洞的危害
XSS实际上就是一个脚本,而这个脚本的主要功能有以下两个:
冒充受害用户
XSS可以通过获得受害者存储在客户端本地的cookie尤其是用于登录用的cookie,就能达到冒充受害用户的目的。而攻击者利用该cookie成功登录受害用户的账号后,就能获得该用户所拥有的所有权限。
上传木马文件
在存储型XSS攻击中,攻击者通过留言板等功能写入的XSS可以被永久的保存在服务器中,因此还可以借此机会上传木马文件以获得webshell以达到长期控制的作用。
总结
XSS攻击漏洞产生的原因是网站开发者对用户提交的数据未经处理就直接将其包含在当前或之后的HTTP响应中。而借此漏洞,攻击者能够获得受害用户用于登录的cookie,也可以上传木马文件以获得webshell。
以上就是本篇的全部内容,我们下篇见。