设为首页收藏本站
投诉及帮助: 点击这里给我发消息

中英网论坛

查看: 1361|回复: 8
打印 上一主题 下一主题

[原创]论坛最新BUG!!(附:编程解决办法参考)

[复制链接]
跳转到指定楼层
1#
发表于 2004-5-16 01:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

最新论坛BUG:可合法注册长度为3个字节以下ID!!

一直以来,uker论坛都限制用户只可注册不低于3个字节长度以下的用户名,如违反则不可成功注册。但是自从升级系统以后,却陆陆续续出现了很多个ID长度少于3的用户。而且均不是uker周年庆批准的合法用户。经细查,才发现原来是uker的系统bug所造成的。

bug漏洞:

注册用户名时,如注册ID长度小于3个英文字节,直接申请注册,系统会提醒因长度小于3而注册不成功。但是,如果在注册的时候于原ID后面添加n个空格,使其整体长度(包括空格)不小于3后,则可成功注册!!

bug分析:

其实这只是一个很简单的编程漏洞,其原理就是在于当系统注册程序verify注册名string的时候,采取的是直接检查注册的string是否小于3个字节.这样一来,注册时提交的空格也被算作这个string的长度了~所以也就通过了用户名不小于3这一条件的限制,而能够成功注册了。。

可能有人会不太明白~~为什么注册的ID后面有空格,但是注册好以后登陆的时候,却不需要加空格就能登陆,而且发表帖子那里的ID也都是不待空格的呢?对于这一点,虽然我不是很清楚论坛的内部架构,但是从以前论坛出错时有时候会显示mysql数据库相关问题。所以能够肯定的是论坛采用的是mysql数据库存储所有档案。这样的话,当带有空格的string被写入数据库的时候~~mysql会自动将所有string内容的两端空格除去后在写入table的column,所以最后存储在论坛数据库里的用户名长度其实是小于3个字节的.加上论坛采用的asp系统是不会去检查数据库某个column的数据长度是多少,所以小于三个字节数据完全可以被合法写入。

至于登陆的时候,当提交username和password以后,asp只会将这两个string拿去匹配数据库中相关的数据,然后决定是否给与合法登陆。很不幸的是,之前写入数据库的数据已经是小于3个字节的了。。。——这就是小于3个字节ID能够注册,也能够合法登陆的原因。

bug解决办法:

其实要解决这个bug是很简单的。甚至只是需要添加一行代码就能完成。但是,既然我们之前作了一些内在的分析,我们也可以通过不同的手段完成。

1.最简单的:在注册ID的时候,在asp验证用户名是否小于3个字节之前,将用getString拿到的原注册ID(也就是可能带有空格的),采用trim()方法去掉两端空格后,在予做相关验证。

2.通过数据库入手:假设用户名在数据库里的column名称是username,我们可以通过mySQL的相关设定,将这个column data的length限制在不得小于3。因为mySQL会先除去空格在保存档案,所以在这里验证的话,不会出现之前通过asp验证的bug.

3,如果还不放心的话,我们在登陆的asp页面也可以加入一段代码来完成double-checking.我们可将登陆提交的用户名ID的string先用trim()去掉空格,再用length.string()来判断它的长度。只有不小于3的才给予通过,进行数据可数据匹配。。。

遗留问题解决办法:

首先,我发了这个帖子之后,我想肯定会有很多用户会抱着试一试或者是别的目的,尝试利用现有bug注册长度小于3的用户名。这点我已经料到了~嗬嗬~~所以为了这张帖子不给论坛添乱子,以及删除之前非法注册的小于3字节ID,解决办法如下:

1.通过可视性数据库管理工具(eg.mySQL),打开用户名ID所在的table,然后点击用户名所在的那个column,这样ID就会顺着内容长度排列。所以1个字节的肯定在最前面,然后是2个字节,如此类推...这样的话,管理员就能很轻松的删除不合法的ID明了。

2.如果论坛的管理系统不是采用的是windows平台,二是不具备这些可视型管理工具的平台的话,我们也可以通过程序代码来做到。

eg.假设ID所在column名称是"username",所在table叫“proffile”的话,我们可以使用select username from profile where 

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 顶 踩
2#
发表于 2004-5-16 02:01 | 只看该作者

别说,他写的东西还真XX

我也来支持以下,我说怎么最近很多都是2个汉字的呢

3#
发表于 2004-5-16 01:54 | 只看该作者
呵呵,支持一下!
4#
发表于 2004-5-16 05:22 | 只看该作者
写的不错,SQL原理也很了解,
5#
发表于 2004-5-16 05:43 | 只看该作者

先晕一下

原来老大你真的很强哦

现在我知道你不是哪个什么了

6#
发表于 2004-5-16 06:16 | 只看该作者

表红了

这个的确是事实嘛

哎``这样我也等明年用正当渠道要一个字的ID

呵呵名字偶都想好了

叫——(不告诉你)[em01]

7#
发表于 2004-5-16 06:22 | 只看该作者

[原创]论坛最新BUG!!(附:编程解决办法参考)

呵呵,谢谢matureking,UKER原来确实存在这个BUG, 现在已经修复完毕。 再一次感谢,这个帖子我们将放到计算机板区让大家学习。

UKER有你更精彩!!!

8#
 楼主| 发表于 2004-5-16 06:13 | 只看该作者

大家过奖了~~

偶害羞的说~

9#
发表于 2004-6-28 03:06 | 只看该作者

嘿嘿,不错啊

您需要登录后才可以回帖

本版积分规则

QQ|排行榜|小黑屋|Archiver|UKER.net ( 沪ICP备11021479号-1  

GMT+8, 2024-11-16 16:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表