谈谈跨站脚本攻击与防御技巧
日期:2007年12月16日 作者: 查看:[大字体 中字体 小字体]-
网络上曾经有过关于跨站脚本攻击与防御的文章,但是随着攻击技术的进步,以前的关于跨站脚本攻击的看法与理论已经不能满足现在的攻击与防御的需要了,而且由于这种对于跨站脚本认识上的混乱,导致现在很多的程序包括现在的动网都存在着跨站脚本过滤不严的问题,希望本文能给写程序的与研究程序的带来一点思路。
还是首先看看跨站脚本漏洞的成因,所谓跨站脚本漏洞其实就是Html的注入问题,恶意用户的输入没有经过严格的控制进入了数据库最终显示给来访的用户,导致可以在来访用户的浏览器里以浏览用户的身份执行HTml代码,数据流程如下:
恶意用户的Html输入————>web程序————>进入数据库————>web程序————>用户浏览器
这样我们就可以清楚的看到Html代码是如何进入受害者浏览器的了,我们也就可以根据这个流程来讨论跨站脚本的攻击与防御了!
1 什么是HTml输入?
这里给出一个HTml代码的示例
很多的程序最终都是将用户的输入转换成这种形式的。可以看到<>是告诉浏览器这是一个Html标记,img是这个Html标记的名称,src是这个标记的第一个属性,=后面是这个属性的值,后面的width是第二个属性,onerror是标记的事件属性。大家可以看到,一个Html标记是包括很多元素的,并不是传统意义上的只有输入<>才会注入Html,事实上只要你的输入处在Html标签内,产生了新的元素或者属性,就实现了跨站脚本攻击!实际上大多数隐秘的跨站脚本攻击是不需要<>的,因为现在的Ubb标签已经让你处在了Html标记之内,很有意思,不是么?
2 哪里才是罪恶的来源?
既然我们的目标是引入代码在目标用户的浏览器内执行,那么我们来看看哪些地方可以引入HTml代码吧!如果用户可以不受限制的引入<>,那么很显然他可以完全操纵一个Html标记,譬如 这样的形式,这对于追求安全的程序来说是绝对不允许的,所以首先要做转换的就是<>,通过如下代码:
过滤代码:
replace(str,"<","<")
replace(str,">",">")
好了,用户可能不能构造自己的HTml标记了,那么利用已经存在的属性如何呢?下面的代码依然可以工作得很好:
因为很多的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这种形式表示的,譬如上面的代码可以换成这样:
- [1] [2] [3] 下一页
-
- 谈谈跨站脚本攻击与防御技巧 相关文章:
- ·多个技巧让局域网内互访无障碍
- ·学习CSS制作网页的多个经验技巧
- ·Windows XP SP2是否正版原版技巧
- ·非主流ps教程实用的技巧大全
- ·Windows Vista停止报告程序问题的技巧方法
- ·Vista系统实现自动关机技巧
- ·免费领养QQ空间五级花最新技巧及代码放送
- ·巧用名称框选择过宽的Excel单元格区域
- ·学习CSS制作网页总结的一些经验技巧
- ·Windows Vista系统调试外置麦克风技巧
- 谈谈跨站脚本攻击与防御技巧 相关软件
- ·巧取军火船
- ·巧施拖兵计
- ·小金水巧钓鬼子兵
- ·毒巧克力命案
- ·浑水摸鱼——混办公室的技巧
- ·小说创作技巧集
- ·实用手机购买技巧大全+手机摄像头知识全揭密
- ·极品巧克力2-1
- ·美丽元素-多个美容小技巧(翻页)
- ·十五巧板十二生肖.pdf
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
精品推荐
热点TOP10
特别推荐
- ·多种DDoS攻击技术方法
- ·黑客入侵前的信息收集
- ·看黑客如何发动对电子邮件系统的攻击
- ·经典:各个网络端口的入侵方法
- ·防范黑客 从两大方面阻止域名被劫持
- ·黑客、红客、蓝客、飞客究竟是什么?
- ·认清虚虚实实的“ARP攻击”防御方法
- ·黑客知识 彻底堵死SQL注入工具漏洞
- ·赛迪网"IT技术百家讲坛"开讲 如何防御黑客?
- ·黑客如何利用DNS欺骗在局域网中挂马
- ·Windows黑客编程基础
- ·黑客很狡猾 如何减轻DDoS攻击危害?
- ·网络攻击的几种攻击与防御手法大揭秘
- ·黑客攻击的几种常用手法及防御技巧
- ·经典常见计算机密码破解实用手册
- ·经典总结:各个网络端口的入侵
- ·最详细的黑客入门法则
- ·Telnet高级入侵攻略及原理
- ·攻防技巧PHP数据库安全之SQL注入
- ·如何有效的抵抗DDOS
