什么是XSS?
XSS的英文全称是Cross Site Scripting,译为跨站脚本攻击,为什么不叫CSS?因为CSS在这之前已经是层叠样式表(Cascading Style Sheets)的缩写了。XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。 分类 1、反射型XSS 当客户端进行访问某条链接时,攻击者可以将恶意代码植入到URL,如果服务端未对URL携带的参数做判断或者过滤处理,直接返回响应页面,那么XSS攻击代码就会一起被传输到用户的浏览器,从而触发反射型XSS。 反射型XSS不会永久存储用户的数据,仅发生在用户的一次访问过程之后。这个过程就像一次反射,因此得名反射型XSS。反射型XSS的触发条件比较苛刻,需要攻击者想方设法引导用户点击链接,但产生的危害不容忽视。 举个栗子: 如图,这个是本期连连看的帖子链接,tid是87193,如果修改tid值为87195,打开的是则是每日一问的帖子。 正常情况下,这个地方只能输入数字,假如社区后端代码没有对用户输入做过滤,我可以在这个参数值的地方构造一段代码,
这样会在页面上弹出我的cookie, 再把这个代码优化一下,可以具体写成把cookie发送到某个指定邮箱。 然后呢,物色一个小白,用一点社会工程学的技巧,比如:二狗,快进这个帖子看看,你被在夺宝计划被抽中了,结果二狗一点,他的cookie就发到我的邮箱了,然后我拿到他的cookie就可以登录他的账号了。 2、存储型XSS 存储型XSS又叫持久型XSS。一般而言,它三种XSS里危害最大的一种。此类型的XSS漏洞是由于恶意攻击代码被持久化保存到服务器上,然后被显示到HTML页面之中。这类漏洞经常出现在用户评论的页面,攻击者精心构造XSS代码,保存到数据库中,当其他用户再次访问这个页面时,就会触发并执行恶意的XSS代码,从而窃取用户的敏感信息。 举个栗子: 同样假设社区的代码写的不够完善,没有对用户输入做过滤。 然后我在某热帖发了一评论,这个评论里面包括一行反弹cookie的攻击代码,那么只要看到这个评论的用户,cookie都被我收集过来了。 3、DOM型XSS DOM-basedXSS漏洞是基于文档对象模型(Document Object Model)的一种漏洞。这种XSS与反射型XSS、持久型XSS在原理上有本质区别,它的攻击代码并不需要服务器解析响应,触发XSS靠的是浏览器端的DOM解析。客户端上的JavaScript脚本可以访问浏览器的DOM并修改页面的内容,不依赖服务器的数据,直接从浏览器端获取数据并执行。
XSS漏洞常见危害 (1)窃取管理员帐号或Cookie,入侵者可以冒充管理员的身份登录后台。使得入侵者具有恶意操纵后台数据的能力,包括读取、更改、添加、删除一些信息。 (2)窃取用户的个人信息或者登录帐号,对网站的用户安全产生巨大的威胁。例如冒充用户身份进行各种操作。 (3)网站挂马。先将恶意攻击代码嵌入到Web应用程序之中。当用户浏览该挂马页面时,用户的计算机会被植入木马。 (4)发送广告或者垃圾信息。攻击者可以利用XSS漏洞植入广告,或者发送垃圾信息,严重影响到用户的正常使用。 |