通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 网络赚钱 | 网站地图 | 广告服务 | 服务
当前位置:首页>>服 务 器>>代理服务器>>正文 新版上线![旧版]
注:打开慢时请稍等
ubb的跨站脚本攻击的漏洞

http://www.iyit.net  日期:2006-5-7 15:57:59  来源:中国站长学院  点击:
参加讨论        近日,由于发现一些站点仍然存在ubb的跨站脚本攻击的漏洞.跨站脚本攻击虽然很少会对服务器造成一些什么比较大的影响,但对于一个站点来说,存在这种漏洞实在是太不值得!小则,弹点什么东东出来;中则改改主页;重则窃取用户的cookies资料,更甚者将会g掉浏览者的硬盘.一个站点被变成一个恶意网站,还有谁敢来?如果再加上该站的站长比较"盲"一些,岂不乱套了?
  
  小小的一段代码就真的能使一个站点成这样?好叫我们来具体的看看所谓的跨站脚本攻击到底会成为什么样的攻击模式.进入一个含ubb功能的站点,比如留言板,论坛,或是含提交程序的站点.首先,讲一下最简单的脚本攻击:等html字符的过滤问题.
  
  登陆过一个cgi制作站点.以原来asp的眼光看cgi的站点,感觉cgi对脚本的过滤应该很好.于是做了最初的测试.在用户一栏中填写,提交用户注册后发现并没提出非法字符的提示.注册完成后,点击资料也发现页面变形了.如在其他几个如国家,性别里填写也会出现同样的问题,那页面就没法看了.于是换了一个站点,再次提交出现了非法字符提示,看来站点是已经过滤的<>等html的脚本字符,那好,我们改用ascii 码替换<> 如& #60; & #62;代替提交后再来看,又出现了上面页面变形的情况,看来非法过滤机制还不是很完善. 更有甚者,我竟发现一个站点内的姓名栏填写时没有字数大小设置,没有过滤任何非法字符,如果我提交个什么恶意代码那还不成全了我?
  
  简单的脚本攻击如等html格式的代码一定要过滤好,上面的一些站点还没牵扯到ubb就出问题了.那我们下面就开始重点讲一下ubb过滤漏洞的问题.ubb是论坛中用来替换html编辑的一种格式符号,如[b ][/b ]可以替换成html中的< b>..然而就是这一个替换问题,就成了跨站脚本攻击的最佳积聚地.测试了一个asp留言版以及一个整站的程序代码:
  
  初级问题: [url ]的过滤,在提交该代码时可以构建一个onmouseover函数的恶意代码,既然onmouseover可以生效,那还有什么办不到的?一些原码程序在变换[url ][/url ]时,只是将[url ]s2[/ url]中的s2直接提交到< a href="s2" target=_blank>s2中.看到如此转换我们可以使用相应的ascii 码中的& #34;来代替",我们多提交一个"然后在构建onmouseover函数进行操作,后果?你应该知道!:p
  
  [img ]的过滤,这真的算是个老大难的问题.很早以前就是[img]的脚本攻击流行一时啊.这次测试中,很多站点还是仍然存在这个漏洞.有点程序根本没有进行过滤.尤其是一些免费留言板的提供站点很多都存在这样的问题.下面我们主要将一下[img ]标签的问题:
  
  很简单的[img ]javascript :alert();[/ img]提交后转换成的代码为< img src="javascript :alert();">,好,到这里我们就可以看到javascript :alert();被< img src="">标签激活了.表现就是弹出对话框.上面写着你在()中要提交的东西.如documents.cookie 呵呵..大多数人都应该知道这东西是做什么.更有甚者,使用document.write();函数,可以写网页.写什么?当然是恶意代码,如[ img]javascript :document.write();[ /img].()中间加你要加的,写你要写的,想多危险就多危险.
  
  高级问题: 由于[img ]的初级问题骚扰很多站点就对一个敏感的字符开始过滤.如ja连接,do连接,wr连接,提交后自动分为j a,d o,w r.或是对字符进行过滤java,document,等等.而这些只能难倒一小部分人.我们仍然可以利用ascii码来代替.可能有人会对代替后的代码仍然不能正常显示而困惑.好,我们下面以一个完整的例子介绍:
  
  某站点ubb过滤代码段如下:
  <%
  function code_ssstrers)
  dim strer:strer=strers
  if strer="" or isnull(strer) then code_ss"":exit function
  
  strer=replace(strer,"<","<")
  strer=replace(strer,">",">")
  strer=replace(strer," "," ") '空格
  strer=replace(strer,chr(9)," ") 'table
  strer=replace(strer,"'","'") '单引号
  strer=replace(strer,"""",""") '双引号
  
  dim re,re_v
  re_v="[^\(\)\;\';""\[]*"
  're_v=".[^\[]*"
  set re=new regexp
  re.ignorecase =true
  re.global=true
  
  re.pattern="(javascript :)"
  strer=re.replace(strer,"javascript:")
  re.pattern="(javascript)"
  strer=re.replace(strer,"javascript")
  re.pattern="(jscript:)"
  strer=re.replace(strer,"jscript :")
  re.pattern="(js:)"
  strer=re.replace(strer,"js:")
  re.pattern="(value)"
  strer=re.replace(strer,"value")
  re.pattern="(about:)"
  strer=re.replace(strer,"about:")
  re.pattern="(file:)"
  strer=re.replace(strer,"file&:")
  re.pattern="(document.)"
  strer=re.replace(strer,"document :")
  re.pattern="(vbscript:)"
  strer=re.replace(strer,"vbscript :")
  re.pattern="(vbs:)"
  strer=re.replace(strer,"vbs :")
  re.pattern="(on(mouse|exit|error|click|key))"
  strer=re.replace(strer,"on$2")
  
  能看懂asp的朋友,就可以看出,以上代码段对javascript,jscript:,js:,about;value,document.,onmouse以及onexit等语句进行了过滤和替换.并对一些特殊字符进行了替换.如".",";""(",")" [替换代码为""中间的"..仔细观察代码后我们会发现其过滤机制并非想想象的那样完美.提交:[ mg]& #176& #93& #118& #97& #115& #79rip& #106& #57documen& #115& #76write& #30& #29哈哈又被黑了& #29& #61& #29[/ mg] 类似代码就可以实现更高级的脚本攻击.注:由于很多站点仍存在此问题,所以将代码修改过,无攻击性了.
  打开你的ft2000,使用文本编辑,你可以找到任何特殊字符所属的ascii码.如:分号;可以代替为&# 59,句点.可以代替为&# 46,以这样的形式我们再次提交代码.果然,上面整个的过滤机制几乎完全失效了.根本没起到什么防御作用.
  
  看了以上的攻击方法,是不是觉得很郁闷?如果才能避免上面的问题发生?
  
  1.如果你的站点程序含论坛,留言板,以及其他程序中含提交数据格式的,没有很好过滤机制,请马上下载升级程序或是停止使用.避免造成更多的问题.
  2.各提供免费论坛,免费申请留言板的站,请将ubb格式关闭.或找到更好的解析ubb.asp程序页.
  3.对一些会编写asp的朋友,我建议大家过滤一下字符:(全部字符将写在[]中)如:
  ["|.|;|:|\|/|&|$|#|`|)|,|'|"|-|~|[|(||] 注:其中|为分割符
  
  4.对于某些站点建议去掉问题比较多的留言板,或是其他含提交的程序.如:原www.sangel.net使用的guestbook,一些不知名的程序体问题更是多多.建议换掉它.
  
  5.我本人也修改了一个国外的留言板,前台基本已经修改完毕.后台这几天正在赶.修改后感觉在文本提交和输入以及留言时都有了很好的过滤.本来打算全采用英文界面,但考虑到n多chinese 对英语不过关,我还是将部分程序汉化了.有兴趣的朋友可以http://www.e3i5.com/guestbook/ 测试.我们欢迎善意的测试.
  
  以下是国内一些经过本人测试的站点的留言板有问题的地址,(请各位站长注意啦,及时修补程序免得造成不必要的麻烦),测试的时间比较短一些,可能有一些站点没有找到.可能存在着更严重的问题.
  
  以上就是这次脚本攻击测试的全部内容。综观全部站点,看上去安全性真是的不敢再想.问题多多.
  虽然只是举手之劳就可以解决的问题,但稍不小心就会造成大问题。


编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:将远程服务器上的图片保存在本地空间
下一篇:让apache支持asp.net
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
最新更新 热点排行 推荐新闻
服务器常见软故障解决思路
win2000 dhcp服务器的设置
如何把内网服务发布到公网
网管手记:传真服务器架设一点通
网管手记:时间服务器架设一点通
服务器常见软故障解决思路
win2000 dhcp服务器的设置
如何把内网服务发布到公网
网管手记:传真服务器架设一点通
网管手记:时间服务器架设一点通
实现dhcp服务冗余
网上安家步步高;adsl建站初探
轻松架设bt服务器
windows xp专业版iis连接数的更改
如何用web接口远程维护win2003服务器
哪有好的代理服务器!?
服务器常见软故障解决思路
win2000 dhcp服务器的设置
如何把内网服务发布到公网
网管手记:传真服务器架设一点通
新开放qq免费挂级网站
免费在qq上看在线电影电视听音乐
免费把qq炫铃设为本机qq的系统提示音
qq珊瑚虫外挂4.0版本发布!
腾讯qq调整升级条件不再诱发网民“通宵
qq挂机的n种快速方法
教您显示器亮度对比度的调节
流金岁月!cpu历史上最难忘的十个第一
摄影后期系列一:1分钟为数码相片去红眼
asp自动解压rar文件
巧用photoshop图案工具
用photoshop制成浪漫的“珍珠项链”
第二十章 开发delphi对象式数据管理功
sql简明教程(1)
vbscript和javascript互相调用 
jsp教程(四)-jsp actions的使用
操作系统被入侵后的修复过程
五一别忘电脑防毒 养成良好上网习惯
google对ie浏览器将捆绑搜索功能表担忧
新版上线,今日正式开通!!!
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息