收藏 分享(赏)

Web安全测试之XSS.doc

上传人:11xg27ws 文档编号:7804833 上传时间:2019-05-26 格式:DOC 页数:7 大小:430KB
下载 相关 举报
Web安全测试之XSS.doc_第1页
第1页 / 共7页
Web安全测试之XSS.doc_第2页
第2页 / 共7页
Web安全测试之XSS.doc_第3页
第3页 / 共7页
Web安全测试之XSS.doc_第4页
第4页 / 共7页
Web安全测试之XSS.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、XSS 全称 (Cross Site Scripting) 跨站脚本攻击, 是 Web 程序中最常见的漏洞。指攻击者在网页中嵌入客户端脚本(例如 JavaScript), 当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的. 比如获取用户的 Cookie,导航到恶意网站,携带木马等。作为测试人员,需要了解 XSS 的原理,攻击场景,如何修复。 才能有效的防止 XSS 的发生。阅读目录1. XSS 是如何发生的2. HTML Encode3. XSS 攻击场景4. XSS 漏洞的修复5.如何测试 XSS 漏洞6. HTML Encode 和 URL Encode 的区别7.浏

2、览器中的 XSS 过滤器8. ASP.NET 中的 XSS 安全机制XSS 是如何发生的呢假如有下面一个 textboxvalue1from 是来自用户的输入,如果用户不是输入 value1from,而是输入“/alert(document.cookie)alert(document.cookie)嵌入的 JavaScript 代码将会被执行或者用户输入的是 “onfocus=“alert(document.cookie) 那么就会变成 事件被触发的时候嵌入的 JavaScript 代码将会被执行攻击的威力,取决于用户输入了什么样的脚本当然用户提交的数据还可以通过 QueryString(放在

3、 URL 中)和 Cookie 发送给服务器. 例如下图HTML EncodeXSS 之所以会发生, 是因为用户输入的数据变成了代码。 所以我们需要对用户输入的数据进行 HTML Encode 处理。 将其中的“中括号“ , “单引号”,“引号” 之类的特殊字符进行编码。在 C#中已经提供了现成的方法,只要调用 HttpUtility.HtmlEncode(“string “) 就可以了。 (需要引用 System.Web 程序集)Fiddler 中也提供了很方便的工具, 点击 Toolbar 上的“TextWizard“ 按钮XSS 攻击场景1. Dom-Based XSS 漏洞 攻击过程如

4、下Tom 发现了 V 中的一个页面有 XSS 漏洞,例如: http:/ Search.asp 页面的代码大概如下Results for .Tom 先建立一个网站 http:/, 用来接收“ 偷”来的信息。然后 Tom 构造一个恶意的 url(如下), 通过某种方式(邮件,QQ)发给 Monicahttp:/ 点击了这个 URL, 嵌入在 URL 中的恶意 Javascript 代码就会在 Monica 的浏览器中执行. 那么 Monica 在 网站的 cookie, 就会被发送到 badguy 网站中。这样Monica 在 的信息就被 Tom 盗了.2. Stored XSS(存储式 X

5、SS 漏洞), 该类型是应用广泛而且有可能影响大 Web 服务器自身安全的漏洞,攻击者将攻击脚本上传到 Web 服务器上,使得所有访问该页面的用户都面临信息泄露的可能。 攻击过程如下Alex 发现了网站 A 上有一个 XSS 漏洞,该漏洞允许将攻击代码保存在数据库中,Alex 发布了一篇文章,文章中嵌入了恶意 JavaScript 代码。其他人如 Monica 访问这片文章的时候,嵌入在文章中的恶意 Javascript 代码就会在Monica 的浏览器中执行,其会话 cookie 或者其他信息将被 Alex 盗走。Dom-Based XSS 漏洞威胁用户个体,而存储式 XSS 漏洞所威胁的对

6、象将是大量的用户.XSS 漏洞修复原则: 不相信客户输入的数据注意: 攻击代码不一定在 中1.将重要的 cookie 标记为 http only, 这样的话 Javascript 中的 document.cookie 语句就不能获取到 cookie 了.2.只允许用户输入我们期望的数据。 例如: 年龄的 textbox 中,只允许用户输入数字。 而数字之外的字符都过滤掉。3.对数据进行 Html Encode 处理4.过滤或移除特殊的 Html 标签, 例如: , , for , " for5.过滤 JavaScript 事件的标签。例如 “onclick=“, “onfocus“ 等

7、等。如何测试 XSS 漏洞方法一: 查看代码,查找关键的变量 , 客户端将数据传送给 Web 服务端一般通过三种方式 Querystring, Form 表单,以及 cookie. 例如在 ASP 的程序中,通过 Request 对象获取客户端的变量假如变量没有经过 htmlEncode 处理, 那么这个变量就存在一个 XSS 漏洞方法二: 准备测试脚本,“/alert(document.cookie)alert(document.cookie)“) 就可以了。 (需要引用 System.Web 程序集)Fiddler 中也提供了很方便的工具, 点击 Toolbar 上的“TextWizard

8、“ 按钮浏览器中的 XSS 过滤器为了防止发生 XSS, 很多浏览器厂商都在浏览器中加入安全机制来过滤 XSS。 例如IE8,IE9,Firefox, Chrome. 都有针对 XSS 的安全机制。 浏览器会阻止 XSS。 例如下图如果需要做测试, 最好使用 IE7。ASP.NET 中的 XSS 安全机制ASP.NET 中有防范 XSS 的机制,对提交的表单会自动检查是否存在 XSS,当用户试图输入 XSS 代码的时候, ASP.NET 会抛出一个错误如下图很多程序员对安全没有概念, 甚至不知道有 XSS 的存在。 ASP.NET 在这一点上做到默认安全。 这样的话就算是没有安全意识的程序员也能写出一个”较安全的网站“ 。如果想禁止这个安全特性, 可以通过

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报