15年来,为全国50万+企业提供互联网数字化基础应用服务。
微网小程序
电商运营
关于我们
付款方式
荣誉资质
业务提交
代理合作
知 识
400-1100-266
9:00-24:00(工作日)
首 页
企业400电话
Hot
网站建设
商标✡知产
网络优化推广
热
AI电话机器人
呼叫中心
彩铃•短信
增值拓展业务
新
主页
>
知识库
> 也谈跨站脚本攻击与防御
也谈跨站脚本攻击与防御
热门标签:
Mysql连接数设置
服务器配置
团购网站
银行业务
Linux服务器
阿里云
科大讯飞语音识别系统
电子围栏
网络上曾经有过关于跨站脚本攻击与防御的文章,但是随着攻击技术的进步,以前的关于跨站脚本攻击的看法与理论已经不能满足现在的攻击与防御的需要了,而且由于这种对于跨站脚本认识上的混乱,导致现在很多的程序包括现在的动网都存在着跨站脚本过滤不严的问题,希望本文能给写程序的与研究程序的带来一点思路。
还是首先看看跨站脚本漏洞的成因,所谓跨站脚本漏洞其实就是Html的注入问题,恶意用户的输入没有经过严格的控制进入了数据库最终显示给来访的用户,导致可以在来访用户的浏览器里以浏览用户的身份执行HTml代码,数据流程如下:
恶意用户的Html输入————>web程序————>进入数据库————>web程序————>用户浏览器
这样我们就可以清楚的看到Html代码是如何进入受害者浏览器的了,我们也就可以根据这个流程来讨论跨站脚本的攻击与防御了!
1 什么是HTml输入?
这里给出一个HTml代码的示例
img src="http://www.loveshell.jpg" width=100 onerror=alert("载入图片错误!")>
很多的程序最终都是将用户的输入转换成这种形式的。可以看到>是告诉浏览器这是一个Html标记,img是这个Html标记的名称,src是这个标记的第一个属性,=后面是这个属性的值,后面的width是第二个属性,onerror是标记的事件属性。大家可以看到,一个Html标记是包括很多元素的,并不是传统意义上的只有输入>才会注入Html,事实上只要你的输入处在Html标签内,产生了新的元素或者属性,就实现了跨站脚本攻击!实际上大多数隐秘的跨站脚本攻击是不需要>的,因为现在的Ubb标签已经让你处在了Html标记之内,很有意思,不是么?
2 哪里才是罪恶的来源?
既然我们的目标是引入代码在目标用户的浏览器内执行,那么我们来看看哪些地方可以引入HTml代码吧!如果用户可以不受限制的引入>,那么很显然他可以完全操纵一个Html标记,譬如script>alert('xss')/script>这样的形式,这对于追求安全的程序来说是绝对不允许的,所以首先要做转换的就是>,通过如下代码:
过滤代码:
replace(str,"","#x3C;")
replace(str,">","#x3E;")
好了,用户可能不能构造自己的HTml标记了,那么利用已经存在的属性如何呢?下面的代码依然可以工作得很好:
img src="javascript:alert(/xss/)" width=100>
因为很多的Html标记里属性都支持javascript:[code]的形式,很好,很多的程序意识到了这一点,可能做了如下的转换:
过滤代码
Dim re
Set re=new RegExp
re.IgnoreCase =True
re.Global=True
re.Pattern="javascript:"
Str = re.replace(Str,"javascript:")
re.Pattern="jscript:"
Str = re.replace(Str,"jscript:")
re.Pattern="vbscript:"
Str = re.replace(Str,"vbscript:")
set re=nothing
你看,只要发现以javascript等脚本属性的形式都会被过滤掉,失去了:的脚本代码是起不了作用的!这样完美了么?事实上Html属性的值,注意是值而不是属性本身是支持#ASCii这种形式表示的,譬如上面的代码可以换成这样:
img src="javascrip#116#58alert(/xss/)" width=100>
代码又执行了,呵呵!看来你漏掉了点什么哦,加上这个代码吧!
replace(str,"","#x26;")
行了,失去它原来的意义了,用户不能以其他方式表示Html属性值了哦!等等,这样的过滤真可以相信么?只要发现这种过滤的关键字机制,饶过就是简单的问题了:
img src="javas cript:alert(/xss/)" width=100>
没有javascript关键字了哦!注意中间那个是tab键弄出来的!关键字被拆分了哦!这是个很麻烦的问题,很多人忘记了这些特殊的字符,呵呵!有人想到要过滤空格了,在过滤之前我们再看看其他的一些东西吧!也许我们现在所处的src属性已经无法利用了,但是我们依然可以产生自己的属性或者事件机制哦!依然是可以执行Html代码的,首先说说事件机制吧:
img src="#" onerror=alert(/xss/)>
这样依然可以执行代码的哦!明白问题出在哪了,不是么?有的程序员仿佛明白了,注意我说的是仿佛,动网就是一个典型的例子,事件属性不是要onerror么?很多人开始用正则表达式了,发现关键的词如onerror就会做转换或者提示用户不执行,是不是没有机会了呢?
当然不是的,事件只是让代码运行的一种方法而不是所有的,可以定义事件了那么也就可以实现自己弄出自己的属性了,试试下面的:
img src="#" style="Xss:expression(alert(/xss/));">
呵呵,还是执行了哦!在做关键字过滤之后有人发现是不是属性之间分隔要用到空格,好,他们把空格堵死了(这样认为的人很多,呵呵)!将空格转成nbsp;是个很普遍的方法?是么?甚至还可以让别人无法关键字拆分,不要太自信了,试试下面的代码看看如何:
img src="#"/**/onerror=alert(/xss/) width=100>
嘿嘿,Good Work!这好象是利用了脚本里注释会被当作一个空白来表示造成的!那怎么办呢?上面提到的好象一直都是在进行被动的攻击防御,为什么不抓住他的本源出来呢?哪里出了问题哪里堵上!
3 本质
上面的问题好象本质上就是一个东西,那就是用户超越了他所处的标签,也就是数据和代码的混淆,对付这种混淆的办法就是限制监牢,让用户在一个安全的空间内活动,这通过上面的分析大家也可能已经知道,只要在过滤了>这两个人人都会去杀的字符之后就可以把用户的输入在输出的时候放到""之间,现在的一般的程序都是这样做的,譬如将会转化成img src="http://www.loveshell.net">这是个好的安全习惯,然后呢?就要让用户的输入处在安全的领域里了,这可以通过过滤用户输入里""实现,但是不要忘记了,这个标签本身也是不安全的,过滤掉空格和tab键就不用担心关键字被拆分饶过了,然后就是用文章中提到的办法过滤掉script关键字,最后就是防止用户通过#这样的形式饶过检查,转换掉吧!
4 困惑
在文章中开始提到的图里可以看到,数据的转换和过滤是可以在3个地方进行转换的,在接受数据的时候可以转换下,在进入数据库的时候可以转换下,在输出数据的时候也可以转换下,但是困惑在哪里呢?不得不面对一个问题就是许多时候程序员舍不得为安全做出那么大的应用上的牺牲,安全是要有代价的,譬如现在邮箱的就不愿意舍弃html标签,因为需要支持多资多彩的页面,所以他们侧重于XSS的IDS检测的性质,只要发现不安全的东西就会转化,但是攻击是无法预知的,漂亮的东西总是脆弱的,有限制,肯定就有人会饶过,呵呵。本文没什么技术含量,只是希望搞安全的脚本人员能更加的了解Xss,跨站,不是那么简单滴!
您可能感兴趣的文章:
跨站脚本攻击XSS(Cross Site Script)的原理与常见场景分析
最新的黑客技术:XSS跨站脚本攻击详细介绍
关于跨站脚本攻击问题
跨站脚本攻击+Cookies欺骗(Discuz篇)
字符集导致的浏览器跨站脚本攻击分析
UBB的跨站脚本攻击的漏洞
研究UBB的跨站脚本攻击之综合篇
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
PHP如何防止XSS攻击与XSS攻击原理的讲解
Web安全之XSS攻击与防御小结
跨站脚本攻击XSS原理与防范实例分析
标签:
萍乡
江苏
广元
衡水
枣庄
衢州
蚌埠
大理
巨人网络通讯声明:本文标题《也谈跨站脚本攻击与防御》,本文关键词 ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
相关文章
电销机器人到底如何运作的?
很多人对 电销 机器人到底如何运作存在着巨大的好奇心,那么今天,小编就带大家看一下机器人的运作流程! 电销...
10-24
电话机器人的兴起对电销行业来说是“惊喜”还
随着互联网 大数据 的普及,许多 电销 行业如雨后春笋般争先恐后地冒出来。而今电销行业的混乱,让各位涉足电销...
10-24
百应电话机器人有哪些功能?百应电话机器人好
百应 智能 电话机器人 能够协助企业进行呼入接待、 外呼 回访等服务场景,能够经过不断的培训学习,逐步完善成专...
10-24
客服外呼系统都有哪些优势?
当前呼叫中心电话系统被企业用于业务 电销 以及客户服务,然而随着企业需求不断扩大,原来传统的自建 呼叫中心...
10-24
电销机器人效果怎么样?智能电话机器人可行吗
几百数千年后,或许没人会记得卡斯帕罗夫曾是世界第一的围棋高手,但人们会记得,他败给了电脑深蓝。那虽算不...
10-24
百应智能外呼系统,贷后管理科技升级
去年底开始,接连出台政策和法规加强对消费 金融 等金融形态进行 规范 。强 监管 下,行业走向规范发展,行业竞...
10-24
百应智能外呼系统引领外呼行业新风向
电话销售: 您好,我这边是XX地产,给您推荐一下精装酒店式公寓,有兴趣了解一下吗? 客户: 具体位置在哪里啊?...
10-24
小贷企业为什么需要电销机器人?
随着信贷行业逐步进入我们的生活中,越来越多人选择借款来处理资金难题。信贷企业不断涌现,业务开展迅猛,行...
10-24
雷霆电话机器人是如何转接人工的?
当我们在拨通移动、联通或电信 运营商 的客服电话时,总会要先经过一些机械化的选择,然后成功连接人工坐席反馈...
10-24
米卡迪电话机器人效果怎么样?
外呼 电话机器人 ,之所以能智能的与客户无忧交流,因为运用了下面这么多高技术。 ASR 语音识别 米卡迪电话机器人...
10-24
灵声电话机器人效果怎么样?好用吗
外呼 电话机器人 ,之所以能智能的与客户无忧交流,因为运用了下面这么多高技术。 灵声 电话机器人 效果怎么样?...
10-24
电销机器人要想效果好,话术定制有多重要
电话机器人 是基于智能语音技术的智能营销工具。它会像真人一样主动拨打客户的电话,介绍产品并回答客户的咨询...
10-24
智能电话机器人的实现原理,使用安全吗?
随着科学技术的进步和 人工智能 的发展,越来越多的智能产品已经进入我们的工作和生活。智能手机、智能电视、智...
10-24
福州哪里有电话机器人研发公司?
人工智能 再次成为各行各业关注的焦点,自从这个概念首次提出以来,60年已经过去了。自从AlphaGo以巨大优势击败人...
10-24
电销机器人销售能力怎么样?
自从 电话机器人 一出现,在 电销 行业火爆了起来。面对电话机器人的各种优势,企业跃跃欲试,但又害怕效果不理...
10-24
推荐文章
习近平叮嘱大庆加快城市转型
我看CTI行业这十四年的发展(上)
您的联络中心NLP和NLU指南
MaerskData美国公司选择思科IP电话解决方案
科大讯飞“语音云”发布 移动互联网迈入语音时代
Win10 Mobile预览版10536使用后越来越卡顿
Win7/Win8.1用户:全新安装Win10之前请先升级
呼叫中心手动排版法则
上一篇:
整理了下手动注入脚本命令[带注释]
下一篇:
突破空格的限制
一起分享吧
版权所有:巨人网络(扬州)科技有限公司——拥有网站建设十年经验,具备独立网站开发能力,能够提供完善的网站设计及相关的网站制作服务! 全国统一服务热线:400-1100-266
展开
收缩
QQ咨询
在线咨询
客服小董
客服小张
客服小刘
客服小李
客服小王
招商加盟
财务查询
微信客服
电话咨询
400-1100-266