常见的三种XSS漏洞

Posted VTime

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常见的三种XSS漏洞相关的知识,希望对你有一定的参考价值。

说到web安全漏洞,大家可能都只知道sql注入,但事实上sql注入漏洞只是较为常见的一种,如果进行比较细致的分类,可以归纳出几十种不同的漏洞。


妈妈再也不用担心我写不出稿子了.jpg


这次先讲一讲最简单也极为常见的一种漏洞——XSS。XSS的全称是跨站脚本(cross site script),为了避免与前端三巨头html,JS,CSS中的CSS混淆,被迫改姓X。XSS是利用网页没有对用户提交的数据进行转义处理或者过滤不足的缺点,将一些代码嵌入到页面中去并设法执行,比如通过JS代码把用户的cookie发送到指定的地方,或是结合文件上传等其他漏洞,从而进一步实现不可告人的目的。

常见的三种XSS漏洞

根据原理进行更细致的划分,可以把XSS漏洞分为三种,存储型,反射型,DOM型。



存储型

顾名思义,存储型漏洞指的是恶意代码已经存储在了服务端,每个打开这一站点的客户端都会惨遭毒手

举个例子,假设某个站点的留言板长这样:

常见的三种XSS漏洞

那么只需要把一段js代码写到留言标题或留言内容里,例如:

常见的三种XSS漏洞

这样一来,任何一个加载了留言的页面,都会运行这段js代码:

一般在发现XSS漏洞后,会弹窗/xss/来证明js代码是可以执行的,至于最终会做哪些操作,就要根据具体情况来确定了。



反射型

反射型XSS漏洞需要用户点击特定链接,或是输入特定内容来触发,直接举例来说明。

假设某站点通过GET方式传递name参数,并将name属性显示在页面上,那么如果将一段js代码作为name参数的值,例如:

http://xxx/?name=<script>alert(/xss/)</script>

并且用户访问了这一链接,则可以在用户的客户端上执行js代码,当然,有那么一丝安全意识的用户必然不会去点击这样的链接,但只需要对链接做一次简单的urlEncode,就会变成:

http://xxx/?name=%3Cscript%3Ealert%28%2fxss%2f%29%3C%2fscript%3E

这样的链接你是否会去点呢?答案很有可能是肯定的。



DOM型

前两种类型都存在恶意代码与服务器之间的交互,但DOM型漏洞是对服务端返回给客户端的响应内容进行篡改,会在页面上新增DOM节点,或对已存在的DOM节点做修改,利用起来比较复杂,就不具体举例展示了,有兴趣的话可以自行搜索。

看到这里,是不是心里还有点小激动呢,原来盗取别人的cookie这么简单!事实上,随着攻防技术的不断优化,这些基础的漏洞基本上都被有效地修复了,虽然不排除一些小型网站的安全工作没有做好,但想要挖掘到绝大多数网站的漏洞,还是非常困难的,需要结合多种漏洞或是通过自动化、批量化的扫描,还有最重要的一点,这是违法的!!所以可以通过自己搭建测试环境来学习、钻研相关技术。正所谓知己知彼百战不殆,只有掌握了各种漏洞的原理和利用方法,才能在自己编码的过程中未雨绸缪,尽量规避相关风险。


以上是关于常见的三种XSS漏洞的主要内容,如果未能解决你的问题,请参考以下文章

三种常见的Web安全问题

转载 | Web 安全漏洞之 XSS 攻击

开源 Web 应用最常见漏洞是 XSS 和 SQLI 漏洞

XSS跨站脚本(pikachu)——反射型xss(get和post)

教你如何玩转XSS漏洞

xss攻击的危害都有哪些?