XSS简单介绍—Web攻击
一 ·基础介绍
xss表示Cross Site Scripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,通过插入恶意脚本,实现对用户游览器的控制。
二·分类
(一)持久型/存储型
非持久型xss攻击是一次性的,仅对当次的页面访问产生影响。非持久型xss攻击要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户游览器执行,从而达到攻击目的。
例一:
通过在交互页面寻找xss漏洞,再通过插入xss恶意代码<script>alert('xss')</script> ,当管理员登陆界面时,就会弹出xss.
(二)非持久型/反射型
持久型xss攻击会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在。下面来看一个利用持久型xss攻击获取session id的实例。
例二:
在交互页面输入<script>alert('xss')</script> 漏洞代码,立即弹出xss.
三·xss漏洞查找方法
1. 黑盒测试
所谓黑盒测试, 就是在不知道系统的代码和运行状态的条件下,对系统进行的测试。在对XSS漏洞的检测中,我们可以模拟黑客的攻击手段,在所有可能的数据输入接口处,尝试 进行一些XSS注入。通过观察注入后的引用这些数据的页面,看其是否出现被注入的现象,即可确实是否存在XSS漏洞。比如我们可以用下面所列的一些脚本来 尝试XSS注入:
><script>alert(document.cookie)</script> =’><script>alert(document.cookie)</script> <script>alert(document.cookie)</script> <script>alert(vulnerable)</script> <script>alert(’XSS’)</script> <imgsrc=/uploadfile/2015/0301/20150301105236644.png” nerror=”alert(’XSS’)”>
2. 静态分析
静态分析方法属于白盒测试方法的一种,它通过对Web应用的代码进行分析,从而发现其中可能存在的问题。
3. 数据流分析
XSS 之所以产生,根本原因在于不安全的数据流, 使得用户的输入数据被直接嵌入到某些页面中。比如PHP中的echo语句,就能够将一些数据直接添加为 HTML页面的一部分,如果这个数据是用户注入了XSS脚本的数据,则会导致产生XSS攻击。因此,数据流分析的主要思想就是使用一些模型或者工具,分析 Web应用程序代码中的数据传输情况,从而发现其中存在的问题。
四·缺陷
1、耗时间
2、有一定几率不成功
3、没有相应的软件来完成自动化攻击
4、前期需要基本的html、js功底,后期需要扎实的html、js、actionscript2/3.0等语言的功底
5、是一种被动的攻击手法
6、对website有http-only、crossdomian.xml没有用