YUZI BBS2000和BBS3000所存在的安全隐患

/ns/ld/softld/data/20010107051036.htm

BBS2000和BBS3000所存在的安全隐患
作者:analysist
网站:红色警戒 http://analysist.diz.nu/

BBS2000和BBS3000是时下非常流行的论坛软件,有很多大中型网站都是用这两个软件来构建它们的论坛
的。不仅如此,同时还有很多的免费论坛提供商也是使用这两个软件。我的论坛也是从一家免费论坛提供商申请的,是BBS2000的版本。也许正是由于它的广泛性引起了我的兴趣,我开始仔细地研究了一下这个论坛,意外地发现它实际上隐藏着一个十分严重的安全隐患,为了进一步研究这个漏洞,我做了进一步的测试,结果又发现了一些问题,同时,我也测试了BBS3000这个新的版本,发现存在着相同的问题。

事情的经过是这样的。我在做我的个人网站时,申请了一个论坛,是BBS2000版本的, 原来是打算提供
一个交流的场所,但是谁知道来的人却寥寥无几,所以有时候我就自己贴几篇文章。有一次,我贴完帖子后意外的发现论坛的上方出现了一个新的菜单(实际上以前也看到过,只是没怎么注意), 名为analysist的留言本,是为了用户查看留言的,似乎没有什么问题。但是直觉告诉我这里应该有一个用户变量在起作用。
接着,我测试性的回复自己的文章,竟然没有要求输入密码!!!我预感到这中间一定有问题,于是我开始研究起这个软件留在系统中的Cookie来。这个小甜饼位于C:\Documents and Setting\AdministratorLocalSettings\Temporary Internet Files的目录下,名为administrator@bbs2000.txt,打开一看,它的结构是这个样子的:

username
analysist www.lf365.net/bbs2000/
0
1362927616
29457954
3634343712
29384528
*
password
30906766 www.lf365.net/bbs2000/
0
1362927616
29457954
3635143712
29384528
*

通过分析,我们可以看出,这个Cookie分为两部分,即username部分和password部分,*号应该是分割符
或者是结束符,www.lf365.net则是我申请的免费论坛提供商。至于其它的一些杂乱无序的数字,我不知道是做什么用的,如果你知道,请给我发信到analysist@china.com,或者直接在我的论坛上给我留言。还有什么看到了吗?我的用户名和密码竟然是用明文保存的!!!如果你再细心一点, 你会发现这个Cookie的存活时间是一年!如果你不人工去清除它们的话,它们会在你的系统中存在一年!

为了研究这个漏洞,我又继续做。 我先把Cookie中的密码(不是我的真正密码啦,呵呵。。。)改成了
另外的一个密码12345678,刷新论坛,自己回自己的文章,反应好象有点慢哦!:( 过了一会儿,到了回复文章的界面,同开始一样,没要求我输入密码(其实密码自动以********的形式存在了)。呵呵。。。 好玩了。重新打开Cookie文件,我发现密码改回去了,变成了30906766,就是我的QQ号了。
现在发现什么问题了吗?据我推断,这个过程应该是这样的:用户第一次发文章时, 软件把用户名和密
码以明文的形式存在用户的系统中,当用户第二次发文章时,软件自动从Cookie中获取用户的用户名和密码,但是我觉得这里面还应该有一个到服务器端验证的过程,如果正确自然没问题,但是如果错了呢? 正如大家上面看到的,服务器会向客户端返回正确的密码,并且存在客户端的系统中。但是有一个前提, 那就是必须个用户在这个客户端上发过文章,下面我就用例子来试验我的这个结论。

实验不是用我的论坛,而是另外的一个论坛,不过都是BBS2000的,而且都是申请的免费论坛。 我想应该差不多吧。我先注册了一个用户,帐号是analysist,密码是1234,发了一篇文章,出现熟悉的analysist的留言本菜单。然后,修改Cookie中的用户名为该论坛的版本的帐号,密码不变,刷新。奇怪的是,还是显示出了analysist的留言本这个菜单,这是怎么回事呢?我清空了除这个Cookie之外的所有缓冲文件,刷新, 还是依旧!:(

我怀疑是这个软件还在其它地方做了标记,但是我懒!:P 所以我没有用Regmon和Filemon来继续跟踪,
如果你有兴趣的话,可以跟踪看看,我的网站上有这两个工具,如果你发现了什么重要的信息,请让我知道,先谢了!然后,我又测试了一下BBS3000,发现存在着类似的问题。

我们知道,这种安全隐患应该是非常严重的,尤其是在一些公共上网的地方,这种危险表现的更为明显。

首先,密码以明文存在本来就是一个安全隐患,更何况这个Cookie的存活时间长达一年!还有,就是那个返回正确密码的问题,也应该算是一个安全的隐患。至于那个替换帐号的问题,如果你好好的研究一下的话,应该也是一个安全的隐患,因为软件既然在系统中做了标记,如果我们找到它,就可以按照我们的要求修改它,再利用那个自动传回正确密码的缺陷,使服务器把正确的密码传给我们,再根据密码明文存在的漏洞,我们是不是很容易拿到管理员的密码呢?论坛的管理员好象经常和网站的管理员是一个人哦!拿到网站的Root权限能做什么呢?好象可以为所欲为了耶!非法访问其中的资源,甚至整个局域网的资源和所有信任主机的资源,当然作为跳板也不错嘛,不过我警告你,千万不要破坏别人的任何东西!!!

呵呵。。。其实以前ChinaRen也存在着类似的问题,输入我们帐号和密码去看信,谁知道却进入了别人的信箱,不止一次,经常的事,现在我不用WWW看信,所以也不知道怎么样了。还有, 我也测试了一下绿萌的论坛,没发现什么问题,不过Cookie的存活期好象也是一年。而看雪的论坛更牛,Cookie的存活期竟然将近十年我想如果系统不自动删除它们的话,呵呵。。。好玩!
以上是我的一些粗浅的看法和认识,如果有什么错误的话,欢迎给我来信指正!:)