学院首页>网络编程>ASP>chinaasp论坛的存在漏洞

chinaasp论坛的存在漏洞

作者:未知 来源:未知 添加时间:2006-5-21 10:27:47
 chinaasp的论坛是一个被广泛使用的论坛程序,用asp实现。昨天偶然之中发现它有一个问题,可以使攻击者冒用任何人的名字发贴。问题的根源还是CGI类程序的最容易犯的毛病,对用户输入没有进行仔细的过滤。如何测试呢?看下面的例子: 



  比如说你想冒充一个叫sb的家伙发贴,我们也注册一个sb用户,当然sb是已经给人注册了的,系统不允许重复注册,但只要我们略微做些手脚,就可以绕过这个限制,办法就是在sb后面加上某个不可见字符,什么%0a,%0d的都成,好象就%20不可以。向论坛发送以下请求就可以成功注册: 



  http://chinaasp.bbs.site/register/check.asp?name=sb%0a&sex=男                            ~~~ 

                             \_ 

                              我们做的手脚  

&email=bug@sss.com&passwd=ppp&repasswd=ppp       

  这样我们就注册了一个叫sb%0a的用户,口令是ppp,以后我们就可以用这个用户名发贴子了: 



  http://chinaasp.bbs.site/SaveAnnounce.asp?boardID=1&boardname=版名&name=sb%0a&passwd=ppp&subject=测试&body=测试&url= 



  虽然从本质上我们是以另一用户名sb%0a贴东西,但从生成的页面上来看,与用sb这个id贴东西没有任何区别,因为asp程序在打印页面的时候会把%0a处理成回车,这在你view source的时就可以清楚的看到: 



</li><ul><li><span class=smallFont><img src="/edu/files/pic/2006-5/21/0652110274618448.gif""> 



  上面的两行中的前一行是真正的sb发的东西,下面的是用sb%0a用户发的,可以看到sb后就折行了,因为%0a被解释成了回车。但这段html,两个id在显示成网页的时候没有任何区别。 



  虽然这是一个小问题,但足以给论坛带来相当的混乱。我没有chinaasp论坛的源码,也没有进行更深入的研究这可能是冰山一角,既然它在注册的时候没有过滤,就很有可能在其他环节也没有类似的保护,可能会有更严重的隐患。 

站内搜索