已登录 首页 | 产品报价 全国行情 产品排行榜 | 渠道商情 商铺大全 | 新闻 评测 专题 下载 | 培训 视频 高端访谈 | 产品论坛 MY168 本友会 ITPUB
IT168.com
当前位置:IT168首页 > 安全频道 > 浅析XSS(Cross Site Script)漏洞原理
[收藏此页] [打印] [推荐] [评论]

浅析XSS(Cross Site Script)漏洞原理

责任编辑:林洪技作者:茄子宝   2007-07-04   
【内容导航】

    二、XSS转码引发的过滤问题

    有攻就有防,网站程序员肯定不会放任大家利用XSS,所以他们常会过滤类似javascript的关键字符,让大家构造不了自己的XSS,我这里就捡两个被忽略惯了的字符来说,它们是"&"和"\".首先来说说"&"字符,玩过SQL注入的都知道,注入的语句可以转成16进制再赋给一个变量运行,XSS的转码和这个还真有异曲同工之妙,原因是我们的IE浏览器默认采用的是UNICODE编码,HTML编码可以用&#ASCII方式来写,这种XSS转码支持10进制和16进制,SQL注入转码是将16进制字符串赋给一个变量,而XSS转码则是针对属性所赋的值,下面我就拿<img src="javascript:alert('XSS');">示例:

    <img src="&#106&#97&#118&#97&#115&#99&#114&#105&#112&#116&#58&#97&#108&#101&#114&#116&#40&#39&#88&#83&#83&#39&#41&#59"> //10进制转码 如图三

    <img src="&#x6a&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3a&#x61&#x6c&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29&#x3b"> //16进制转码。

    这个&#分隔符还可以继续加0变成“&#0106” ,“&#00106” ,“&#000106” ,“&#0000106”等形式。

    而这个"\"字符却暴露了一个严重的XSS 0DAY漏洞,这个漏洞和CSS(Cascading Style Sheets)层叠样式表有很大的关联,下面我就来看看这个漏洞,先举个javascript的eval 函数的例子,官方是这样定义这个函数:

    eval(codeString),必选项 codestring 参数是包含有效 JScript 代码的字符串值。这个字符串将由 JScript 分析器进行分析和执行。

    我们的JavaScript中的"\"字符是转义字符,所以可以使用"\"连接16进制字符串运行代码

    <SCRIPT LANGUAGE="JavaScript">
eval("\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a\x61\x6c\x65\x72\x74\x28\x22\x58\x53\x53\x22\x29")
</SCRIPT>

收藏到: 添加到“百度搜藏”添加到“QQ书签”添加到“Google书签”添加到“Yahoo收藏”添加到“和讯网摘”
【内容导航】
史上最详细DELL网购天书 优惠信息请致电800-858-2903
本文欢迎转载,转载请注明:转载自IT168 [ http://www.it168.com/ ]
本文链接:http://publish.it168.com/2007/0704/20070704004202.shtml
安全频道相关文章  [本文关键字:XSS,跨站攻击,漏洞 ]
  • 暂无
安全频道热点关注
安全频道热评文章
[上海]便宜 海康威视DS-8016HC-s仅6000
友情推介