这是在 20CN网络安全小组第一代论坛 的论坛 菜鸟乐园 中的主题 聊天室的漏洞


要查看这个主题,请使用这个 URL:
http://www.20cn.net/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic;f=1;t=000016

第007元素 发表于 :
 
大家好!各位是否知道聊天室里的踢人问题.你莫名其妙的离线了!真的很讨厌,如果是由于不遵守聊天规则那还可以理解,但是...

好了!不说那么多了!先看看聊天室的一个漏洞!


--------------------------------------------------------------------------------

1 聊天室踢人的漏洞

各种聊天室肯定都有退出的按钮(你不愿意聊了,可以正常离开吗!!),当然你直接关闭窗口也可以啊!但那是异常离开!程序设计者不会提倡这种离开方法的!所以都会提供一个离开按钮的!下面看看这个退出表单的程序代码:

<FORM name='leave' ACTION='http://xxx.xxx.xxx.xx/leave' target='_parent' METHOD=POST>
<INPUT TYPE=HIDDEN NAME='name' VALUE='guest59258'>
<INPUT TYPE=HIDDEN NAME='pass' VALUE='956285295'>
<INPUT TYPE=HIDDEN NAME='room' value='yyyyyyyy'>
<INPUT TYPE=submit name=submit Value='离开' >
</form>

其中的红色部分为发送请求的人(也就是按离开按钮的人)的名称代号!

如果我们其中的 VALUE=改为另外一个代码,比如:VALUE='guest59595',然后再按离开按钮的话,那就相当于是 guest59595 按的一样. 如果处理程序不能很好的判断发送请求的正确性,那guest59595就真的离开了!这就是踢人得原理!

其它的象穿墙书等同样利用上面的方法来实现的..


--------------------------------------------------------------------------------

2 防御方法

方法非常简单!比如:

(1) 判断上面标但中那个蓝色的密码项是否正确.

每个聊天用户都有一个用户名,但一般都有一个随机产生的密码!如果我们在cgi程序里判断密码项是否正确,就就可以简单的解决了!什么???你要连密码项都要改,可是,你在聊天室里一般只能看到对方的名字,不可能看到它的密码的!!我想你不会用穷举法尝试把!!

(2)判断信息的IP号

聊天者一般是通过拨号上网的,其IP地址号室随机分配的,而且每个拨号机器只能有一个IP号,所以聊天室程序在其进入时应该保存聊天者的IP号,然后在每次处理每个请求时判断名称和IP号是否是同一个人,这样就能比较安全的达到防止胡乱发言和踢人的目的了.

(3)如果对方能够知道你的IP地址,而且用IP欺骗程序来攻击你,那他可真是一个高高手了,被这样的高手攻击,你应该感到荣幸.是不是有点拿大炮打蚊子的感觉!他才没有兴趣跟你浪费时间呢??一定是参加"抗日战争"去了.不必担心的.哈哈哈哈!!


 


吉祥 发表于 :
 
你说的那种聊天室呢?????????
 
第007元素 发表于 :
 
是指HTML之类的一些聊天室!
 




Powered by Infopop Corporation
UBB.classic™ 6.5.0
NetDemon修改版 1.5.0, 20CN网络安全小组 版权所有。