xss 跨站脚本攻击

攻击原理

XSS(cross-site scripting跨域脚本攻击)攻击是最常见的Web攻击,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。

xss 与其他的攻击方式相比缺点明显,如下:

1、耗时间

2、有一定几率不成功

3、没有相应的软件来完成自动化攻击

4、前期需要基本的html、js功底,后期需要扎实的html、js、actionscript2/3.0等语言的功底

5、是一种被动的攻击手法

6、对website有http-only、crossdomian.xml没有用

但是它的广泛性也让很多相关人员对次偏爱不已,几乎所有的网站都存在xss 漏洞,包括百度,谷歌等大型网站

XSS形成原理 

wed 前端代码缺少过滤或过滤不足,从而导致的输出问题

1 <?php
2 $xss=$_GET['x'];
3 echo $xss;
4 ?>

执行以上代码,我们可以在网页上得到x 的值

此时查看源代码,发现我们以GET 传过去的x 的值在body 标签直接输出

那么在这里假设,如果我们在搜索框输入<script>alert(‘xss’)</script>会出现什么呢?按照前面的例子来看这段JavaScript 代码会嵌入到body 标签输出,然后页面弹出弹框
 

也就是说我们可以在一些前端代码中嵌入并执行自己构造的一些JavaScript 代码,从而实现xss 攻击,并且JavaScript 加载的外部代码文件可以是任意的扩展名,无扩展名也可以,甚至于文件中有JavaScript代码,代码也会被执行,这也就给了攻击者更加灵活的发挥空间

XSS 技术分类

有人将XSS攻击分为三种,分别是:

1. Reflected XSS(基于反射的XSS攻击)

2. Stored XSS(基于存储的XSS攻击)

3. DOM-based or local XSS(基于DOM或本地的XSS攻击)

实际上DOM 型的xss 攻击也是一种特殊的反射型xss 攻击,反射型xss 攻击需要依靠用户手动触发,而存储型xss 攻击并不需要用户手动触发,并且作用于数据库,具有更高的隐蔽性和危害性

手工检测XSS

手工检测xss 漏洞,关键是利用一些特殊字符来确定输入输出点,一般用特殊字符< / > 之类的进行测试,然后查看源代码,来确定输出点是否存在过滤

反射型xss,常存在于搜索框,用户登录口,它的数据流向:浏览器->后端->浏览器
存储型xss,多存在于留言,评论,博客日志交互处,数据流向:浏览器->后端->数据库->后端->浏览器

XSS 通用标签

原文地址:https://www.cnblogs.com/TWX521/p/9936917.html