一. 概念
1. 跨站点脚本(XSS)是针对其他用户的重量级攻击。
2. XSS漏洞非常容易发现,而且极其常见,任何人只要使用浏览器在几分钟内就可以找到一个XSS漏洞。
3. 漏洞的严重程度取决于它出现的情境以及利用它的攻击者希望达到何种目标。
二. 常见xss漏洞类型及预防
1.反射型XSS漏洞
利用这种漏洞需要设计一个包含嵌入式JavaScript代码的请求,随后这些代码又被反射到任何提出请求的用户,因而它被称作反射型XSS。
该页面会使用一个包含消息文本的参数,并在响应中将这个文本返回给用户。
预防:在应用程序处理时对参数进行一些过滤或htmlencode编码。
例: 搜索按钮输入框有时候可能会存在这个问题
2.保存型跨站点脚本
产生背景:如果一名用户提交的数据被保存在应用程序中(通常保存在一个后端数据库中),然后不经适当过滤或净化就显示给其他用户,此时就会出现这种漏洞。
预防:在应用程序处理时对参数进行一些过滤或htmlencode编码。
例:留言、论坛
3. 基于DOM的XSS漏洞
前两种漏洞是应用程序提取用户控制的数据并以危险的方式将这些数据返回给用户。在这种漏洞中,攻击者的JavaScript通过以下过程得以执行。
a.用户请求一个经过专门设计的URL,它由攻击者提交,且其中包含嵌入式JavaScript。
b.服务器的响应中并不以任何形式包含攻击者的脚本。
c.当用户的浏览器处理这个响应时,上述脚本得以处理。
由应用程序发布的一段脚本可以从URL中提取数据,对这些数据进行处理,然后用它动态更新页面的内容。如果这样,应用程序就可能易于受到基于DOM的XSS攻击。
预防:1.js进行过滤
2.参数不用字符串形式传递
三. 检测工具
Paros
其中推荐Paros,开源,工具在检测出缺陷的同时还会有相应的建议解决方案。
参考网址:
http://www.7dtest.com/site/html/87/t-2087.html
http://www.heibai.net/articles/hacker/fenxi/2010/0911/9903.html
http://publish.it168.com/2007/0704/20070704004201.shtml
http://book.51cto.com/art/200907/138792.htm