来源:自学PHP网 时间:2015-04-17 12:00 作者: 阅读:次
[导读] www.2cto.com:超级老文欣赏-------记Try2.org漏洞挖掘过程今天闲来无事,和try2实验室站长Bluephantom无意中扯到安全的话题上,Bluephantom说是能搞到try2网站的漏洞,Bluephantom请吃饭哈。 一提吃...
www.2cto.com:超级老文欣赏
-------记Try2.org漏洞挖掘过程 今天闲来无事,和try2实验室站长Bluephantom无意中扯到安全的话题上,Bluephantom说是能搞到try2网站的漏洞,Bluephantom请吃饭哈。 一提吃饭便来了兴致,可是Bluephantom写的www.try2.org安全性我也见识过,过滤了不少东西,能搞嘛? 我抱着试一试的心态,用X-Scan对Try2.org做了漏洞扫描。(图1)
图1 我是用X-Scan做的扫描,出来的结果只有一条引起我的兴趣-------HTTP TRACE 跨站攻击。。看到这里,我不由得深吸了口冷气,是X-Scan的误报?还是www.Try2.org真的存在所谓的跨站漏洞呢?(图2)
图2 Try2,org的程序是Bluephantom写的,并且开源,开放下载,看过源码,所有的变量都是引号扩起来,又过滤掉了引号,按常理说,怎么可能补全呢?不过我还是只信奉一条。没有绝对安全的程序哈。 说到这里,不得不佩服Bluephantom做的过滤,常用的" ' "号在try2.org这个站上面早已失去了意义。(图3)
图3 既然我们跨站,那要怎么跨呢? 先来构造跨站语句吧! <iframe src="http://www.baidu.com/" width="800" height="160" frameborder="0" ></iframe> 当然,里面的 是http的转义字符,就是所谓的空格了,在www.Try2.Org的搜索处,提交这个语句。(图4)
图4 很明显,就像Bluephantom说的那样过滤了引号,不可能补全。而且所有的Html都给转义了,就是说<>会变成<>等等。。。可是我也看到了,提交的代码,网站程序运行之后,变成了 <iframe src=\"http://www.baidu.com/\" width=\"800\" height=\"160\" frameborder=\"0\" ></iframe> 这样的格式。。。。在这里我深切的bs一下 Bluephantom,在引号的前面插入"\"号,造成跨站的失败,可是,是不是就不能跨站了呢? 我并不灰心。。。 抽支烟,喝口水。。。继续。。。。。。。。。 我发现,try2的url构造基本上都是。。。 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。 http://www.try2.org/index。php?act=viewer...ools&id=xxx 这难道就是文章的地址吗?(图5)
图5 从这里可以看出,貌似是提交什么url,就返回给什么地址。那也就是说,我们把语句给"id="这个查询变量,是不是会成功跨站呢? http://www.try2.org/index.php?act=viewer&a...t;&tree=yes 提交。(图6)
图6 我晕,料想的没错。提交是提交了,可就是被过滤了。 这么说,Bluephantom在开发这个程序的时候也开始偷懒了。提交是提交了,响应是响应了,可就是给过滤掉,这倒是个省事的办法哈。 写到这里,为try2.org感叹,既然当初Bluephantom已经发现这个漏洞了,为什么没有更好的解决掉呢?仅仅是限制了双引号么? 暂且BS一下。。。。开始郁闷。。。。在考虑是不是要放弃。 抽支烟ing 在baidu上乱点,无意中发现了baidu的搜索代码html的代码。。。咦?这不是一个查询对话框和按钮么?又没用引号,嗯,不错不错 立即对这个代码做了简化,我构造了一个按钮出来哈。 <form action=http://www.baidu.com/baidu method=get><input type=text name=word><input type=submit value=baidu></form> 写入到我们构造的url里面去哈。 http://www.try2.org/index.php?act=viewer&a...t;&tree=yes 快测试下 (图7)
图7 居然成功了, 快测试一下。居然可以用,在新窗口中弹出。可是很快我又发现了新的问题,这样做,岂不是从这个页面上弹出的么? 又得不到这个页面上的程序? 短暂的快乐过后,又陷入了郁闷之中,哎。。。再抽支烟… 晕,原来是我犯傻了,看到我构造的这个url中,action= 后面岂不是可以添加东西吗?哈哈哈,我们看看cookies怎么样? <img dynsrc="java script:alert(document.cookie)"> 兴奋之余就给提交了url http://wwwtry2org/index.php?act=viewer&...&id=<img dynsrc="java script:alert(document.cookie)"> &tree=yes 再一次傻脸,这个代码怎么又不运行了呢? (图8)
图8 看了url才知道,自己犯了一个低级错误。哎。。 原来,提交这个这个 http://www.try2.org/index.php?act=viewer&a...&id=<img dynsrc="java script:alert(document.cookie)"> &tree=yes url中,引号又被过滤了,页面运行后,返回了 http://www.try2.org/index.php?act=viewer&a...&id=<img dynsrc=\\ 这样的地址。好了,去掉引号,去掉那个文本框,再来提交 http://www.try2.org/index.php?act=viewer&a...m action=java script:alert(document.cookie) method=get><input type=submit value=baidu></form>&tree=yes 出现了按钮了,我迫不及待的按下去,哈哈,得到了cookies啦…(图9)
图9 激动了半天,终于傻了一下,得到的这个貌似没什么太大的作用。而且,只能在管理员登录的时候伪造session 。况且Bluephantom写的后台,后台登陆依然用cookies,郁闷了,抽烟…… 正在发愁自己该咋戒烟的时候,对比构造的这两个跨站代码 一个是按钮,一个是在框架内。 忽然发现自己犯的又一个低级错误。 <iframe src="http://www.baidu.com/" width="800" height="160" frameborder="0" ></iframe> 这个url我不是可以把双引号去掉嘛。 <iframe src=http://www.baidu.com/ width=800 height=160 frameborder=0 ></iframe> Ok,接着构造url。 http://www.try2.org/index.php?act=viewer&a...t;&tree=yes 迫不及待的test, 哈哈,终于看到了久违的baidu了。(图10)
图10 哇,终于搞定了,接下来的利用我不用说了吧? 哈哈哈哈。 到这里,似乎有些成功之后的喜悦,毕竟程序是人写的嘛,漏洞是不可缺少的,在存在漏洞的同时,软件也会不断的加强,升级,看来 Bluephantom请我吃饭是肯定的啦。Try2.org很快也会发布相应的补丁的。 最后,大家都来try2报个名,让Bluephantom请客吃饭哈哈哈。 By zf |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com