XSS 被称为跨站脚本攻击(Cross-site scripting),本来应该缩写为CSS,但是由于和CSS(Cascading Style Sheets,层叠样式脚本)重名,所以更名为XSS。XSS(跨站脚本攻击)主要基于javascript(JS)完成恶意的攻击行为。JS 可以非常灵活的操作html、css和浏览器,这使得XSS 攻击的“想象”空间特别大。 XSS 通过将精心构造的代码(JS)代码注入到网页中,并由浏览器解释运行这段JS 代码,以达到恶意攻击的效果。当用户访问被XSS 脚本注入的网页,XSS脚本就会被提取出来。用户浏览器就会解析这段XSS 代码,也就是说用户被攻击了。用户最简单的动作就是使用浏览器上网,并且浏览器中有javascript
解释器,可以解析javascript,然而浏览器不会判断代码是否恶意。也就是说,XSS 的对象是用户和浏览器。
二. xss的危害XSS 利用JS 代码实现攻击,有很多种攻击方法,以下简单列出几种
@ 盗取各种用户账号
@ 窃取用户Cookie资料,冒充用户身份进入网站
@ 劫持用户会话,执行任意操作
@ 刷流量,执行弹窗广告
@ 传播蠕虫病毒
等等
三.XSS 的分类XSS 漏洞大概可以分为三个类型:反射型XSS、存储型XSS、DOM 型XSS。 1 反射型XSS 反射型XSS 是非持久性、参数型的跨站脚本。反射型XSS 的JS 代码在Web 应用的参数(变量)中,如搜索框的反射型XSS。 [[alert('/xsss/')
]]
2 存储型XSS 存储型XSS 是持久性跨站脚本。持久性体现在XSS 代码不是在某个参数(变量)中,而是写进数据库或文件等可以永久保存数据的介质中。 存储型XSS 通常发生在留言板等地方。 我们在留言板位置留言,将恶意代码写进数据库中。
3.DOM XSS DOM XSS 比较特殊。owasp 关于DOM 型XSS 的定义是基于DOM 的XSS 是一种XSS 攻击,其中攻击的payload由于修改受害者浏览器页面的DOM 树而执行的。其特殊的地方就是payload 在浏览器本地修改DOM 树而执行, 并不会传到服务器上,这也就使得DOM XSS 比较难以检测。如下面的例子
[#message=alert(/xss/)]
我们以锚点的方式提交PoC。PoC 并不会发送的服务器,但是已经触发了XSS。