XSS解决方案系列之一:淘宝、百度、腾讯的解决方案之瑕疵

2013-05-28 488717人围观 ,发现 39 个不明物体 WEB安全

【声明】

1. 只是技术研究,没有攻击哪家公司之意
2. 本文不涉及漏洞公布,不影响以上公司的任何应用安全之相关事宜
3. 本人没兴趣炒作,举这三大公司为例表明本人认为它们是中国互相网企业当中的佼佼者,也容易被更多的人读懂
4. 如果您觉得我的文章影响了你的公司的某个方面,请以邮件的形式告知我,我将修改本文
5. 本文未经本人以书面形式同意,禁止其它网站转载,本文格式,诚请编辑修订,以增加可读性。

好,我们进入正题,在本人过去的经验及现实工作当中总结来看,解决XSS问题需要遵循的最基本的原则是:
1. 避免用户输入的脚本再次展示于客户端之时非设计预期的执行
2. 任何时候不应该改变用户的输入
3. 何时展示何时解决

【解释一下】对于上述原则不是本人编造的,而是业界的共识(未必是我们伟大祖国的业界共识,但这确实是业界的共识),以下将分别以例证的方式说明以上三条XSS解决方案的基本原则。今天就来个倒序吧,一个一个看:


【上述原则之3】 比较容易理解,许多公司已经解决了XSS问题,但是解决的不完整,或者说不完美,有后患,以实例来看以下:
步骤:
1) 打开www.soso.com
2) 输入字符串:159753125521<script>alert(“‘”)</script>
3) 打开资源文件,如下图:


图中的部分代码:

<script>var __kw = '159753125521%3A%3Cscript%3Ealert%28%22%27%22%29%3C%2Fscript%3E',__kw8 =encodeURIComponent("159753125521:<script>alert(\"'\")<\/script>")...

可以看出,代码片段中的编码(此处的编码是指:Encoding或者叫转义)从解决问题的原则角度来说,有点早,毕竟:变量__kw将在何时使用,何处使用,你可能在编码(此处的编码是指:写代码)的时候可以预料,但是随着时间的推移,可能会被其它的开发人员使用,使用的语法环境是否适合使用URL+Javascript编码(此处的编码是指:Encoding或者叫转义)就很难说了。

【上述原则之2】 我们提供的应用平台应该是这样的:
1.  允许用户输入任何值而不影响本应用的正常运行,也不改变输入的输入,至少不应该让用户感觉到你改变了用户的输入
2. 出于对应用设计的考虑,禁止用户输入特定的保留字符,对于此种情况,应用平台理应以友好的方式告知用户以提示用户不要输入不可以接受的字符,而不是直接改变用户的输入而用户觉得莫名其妙,比如淘宝网,打开淘宝首页,按以下步骤进行:
1)  打开www.taobao.com
2)  字符串:159753125521<script>alert(“‘”)</script>
3)  在淘宝的输入框里输入以上2)字符串(此类例子,我一般使用Google Chrome浏览,不同浏览器有可能在处理URL时有不同的方式),你也可以在Chrome里直接运行以下URL:

http://s.taobao.com/search?q=159753125521<script>alert("'")</script>

得到的结果是搜索框的搜索值变成了:159753125521 script alert( ) /script,截图如下:


其资源文件里也同样如此,截图如下:

以上表明,淘宝在处理XSS问题时,因为方法不当而改变了用户的输入。

【上述原则之1】 意思也不难理解,这个问题比较敏感,如果我举出一个例子似乎就意味着这地方有漏洞,有没有办法举出一个例子却是一个几乎不能被利用的漏洞呢? 貌似有,步骤:
1) 打开www.baidu.com
2)输入字符串 <script>alert(“‘”)</script>//<!–159753159753
3)点击搜索,观察现象,细节我就不分析了,现象上看,貌似某处的被字符串 // 或者<!– 起了作用而导致后续代码被注释,我只是猜测啊,不负责的,仅供交流。
结果是这样的:

正确的提示页应该是:

这些评论亮了

  • FB客服 (9级) FreeBuf官方客服 回复
    @anlfi  昨天晚上由于freebuf某SA误操作,修改了网站的文件宿主权限,导致wp-config.php文件无法读取,对此造成的不便表示道歉,经过管理团队的一番教育,该SA泪流满面表示痛改前非,深刻忏悔,并表示下次不会再犯同类错误。
    )30( 亮了
  • test 回复
    该评论已被和谐,如有反对意见,请提出相应数据证明。 by FB客服
    )28( 亮了
  • jiayzhan (5级) 硅谷某知名IT企业中国区高级应用安全工程师 回复
    百度解决问题的速度真是快,也不知道谢我一下,不大度呀。呵呵
    )16( 亮了
发表评论

已有 38 条评论

取消
Loading...
css.php