今天闲来无事,和try2实验室站长Bluephantom无意中扯到安全的话题上,Bluephantom说是能搞到try2网站的漏 洞,Bluephantom请吃饭哈。 一提吃饭便来了兴致,可是Bluephantom写的www.try2.org安全性我也见识过,过滤了不少东西,能搞嘛?
我抱着试一试的心态,用X-Scan对Try2.org做了漏洞扫描。(图1)
我是用X-Scan做的扫描,出来的结果只有一条引起我的兴趣——-HTTP TRACE 跨站攻击。。看到这里,我不由得深吸了口冷气,是X-Scan的误报?还是www.Try2.org真的存在所谓的跨站漏洞呢?(图2)
图2
Try2,org的程序是Bluephantom写的,并且开源,开放下载,看过源码,所有的变量都是引号扩起来,又过滤掉了引号,按常理说,怎么可能补全呢?不过我还是只信奉一条。没有绝对安全的程序哈。
说到这里,不得不佩服Bluephantom做的过滤,常用的” ‘ “号在try2.org这个站上面早已失去了意义。(图3)
既然我们跨站,那要怎么跨呢? 先来构造跨站语句吧!
1
|
<iframe src=“http://www.baidu.com/” width=“800″ height=“160″ frameborder=“0″ ></iframe>
|
当然,里面的 是http的转义字符,就是所谓的空格了,在www.Try2.Org的搜索处,提交这个语句。(图4)
很明显,就像Bluephantom说的那样过滤了引号,不可能补全。而且所有的Html都给转义了,就是说<>会变成<>等等。。。可是我也看到了,提交的代码,网站程序运行之后,变成了
1
|
<iframe src=“http://www.baidu.com/” width=“800″ height=“160″ frameborder=“0″ ></iframe>
|
这样的格式。。。。在这里我深切的bs一下 Bluephantom,在引号的前面插入””号,造成跨站的失败,可是,是不是就不能跨站了呢? 我并不灰心。。。
抽支烟,喝口水。。。继续。。。。。。。。。
我发现,try2的url构造基本上都是。。。
1
|
http://www.try2.org/index.php?act=viewer&a…xx&tree=yes
|
Act=viewer就是查看嘛。。module=tools 工具页面? 后面的typeid= 和 id= 两个应该就是查看的内容页面了,最后的tree=yes或者no,这个tree的功能我还不是很确定,先不管它。
进入视线的便是 typeid= 和id= 两个查询。
嘿嘿,好玩儿。看文章标题的下方,本页URL。
1
|
http://www.try2.org/index。php?act=viewer…ools&id=xxx
|
这难道就是文章的地址吗?(图5)
从这里可以看出,貌似是提交什么url,就返回给什么地址。那也就是说,我们把语句给”id=”这个查询变量,是不是会成功跨站呢?
1
|
http://www.try2.org/index.php?act=viewer&a…t;&tree=yes
|
提交。(图6)
我晕,料想的没错。提交是提交了,可就是被过滤了。 这么说,Bluephantom在开发这个程序的时候也开始偷懒了。提交是提交了,响应是响应了,可就是给过滤掉,这倒是个省事的办法哈。
写到这里,为91ri.org感叹,既然当初Bluephantom已经发现这个漏洞了,为什么没有更好的解决掉呢?仅仅是限制了双引号么? 暂且BS一下。。。。开始郁闷。。。。在考虑是不是要放弃。
抽支烟ing
在baidu上乱点,无意中发现了baidu的搜索代码html的代码。。。咦?这不是一个查询对话框和按钮么?又没用引号,嗯,不错不错
立即对这个代码做了简化,我构造了一个按钮出来哈。
1
|
<form action=http://www.baidu.com/baidu method=get><input type=text name=word><input type=submit value=baidu></form>
|
写入到我们构造的url里面去哈。
1
|
http://www.try2.org/index.php?act=viewer&a…t;&tree=yes
|
快测试下 (图7)
居然成功了, 快测试一下。居然可以用,在新窗口中弹出。可是很快我又发现了新的问题,这样做,岂不是从这个页面上弹出的么? 又得不到这个页面上的程序?
短暂的快乐过后,又陷入了郁闷之中,哎。。。再抽支烟…
晕,原来是我犯傻了,看到我构造的这个url中,action= 后面岂不是可以添加东西吗?哈哈哈,我们看看cookies怎么样?
1
|
<img dynsrc=“java%20script:alert(document.cookie)”>
|
兴奋之余就给提交了url
1
|
http://wwwtry2org/index.php?act=viewer&…&id=<img dynsrc=”java%20script:alert(document.cookie)”> &tree=yes
|
再一次傻脸,这个代码怎么又不运行了呢? (图8)
看了url才知道,自己犯了一个低级错误。哎。。
原来,提交这个这个
1
|
http://www.try2.org/index.php?act=viewer&a…&id=<img dynsrc=”java%20script:alert(document.cookie)”> &tree=yes
|
url中,引号又被过滤了,页面运行后,返回了
1
|
http://www.try2.org/index.php?act=viewer&a…&id=<img dynsrc=
|
这样的地址。好了,去掉引号,去掉那个文本框,再来提交
1
|
http://www.try2.org/index.php?act=viewer&a…m action=java%20script:alert(document.cookie) method=get><input type=submit value=baidu></form>&tree=yes
|
出现了按钮了,我迫不及待的按下去,哈哈,得到了cookies啦…(图9)
激动了半天,终于傻了一下,得到的这个貌似没什么太大的作用。而且,只能在管理员登录的时候伪造session 。况且Bluephantom写的后台,后台登陆依然用cookies,郁闷了,抽烟…… 正在发愁自己该咋戒烟的时候,对比构造的这两个跨站代码
一个是按钮,一个是在框架内。
忽然发现自己犯的又一个低级错误。
1
|
<iframe src=“http://www.baidu.com/” width=“800″ height=“160″ frameborder=“0″ ></iframe>
|
这个url我不是可以把双引号去掉嘛。
1
|
<iframe src=http://www.baidu.com/ width=800 height=160 frameborder=0 ></iframe>
|
Ok,接着构造url。
1
|
http://www.try2.org/index.php?act=viewer&a…t;&tree=yes
|
迫不及待的test,
哈哈,终于看到了久违的baidu了。(图10)
哇,终于搞定了,接下来的利用我不用说了吧? 哈哈哈哈。
到这里,似乎有些成功之后的喜悦,毕竟程序是人写的嘛,漏洞是不可缺少的,在存在漏洞的同时,软件也会不断的加强,升级,看来 Bluephantom请我吃饭是肯定的啦。Try2.org很快也会发布相应的补丁的。
91ri.org:xss已经早不是什么只能获取cookie的东西了,不了解xss的朋友可以参考《用xss平台沦陷百度投诉中心后台》经典文。
本文有过程 有思路 有错误分析 有最终结果 不得不说是一篇好文啊,大家多参考他的挖掘漏洞思路,有时能学习想到一个新思路比你所获得结果更重要!
原文:http://try2.org/index.php?act=viewer&module=releases&typeid=2&id=21&page=1&tree=no
本文由网络安全攻防研究室(www.91ri.org)信息安全小组收集整理,转载请注明出处!
Copyright © hongdaChiaki. All Rights Reserved. 鸿大千秋 版权所有
联系方式:
地址: 深圳市南山区招商街道沿山社区沿山路43号创业壹号大楼A栋107室
邮箱:service@hongdaqianqiu.com
备案号:粤ICP备15078875号