序------------
今天从公司带回来要做的资料在U盘里都没有了,无奈就看看这个号称无漏洞的论坛--94KKBBS,当然一边看也是一边学习,也没真想找什么漏洞,在学习的过程中,也发现了一些很基本的错误。
请修改UserSetup.asp对应的行号
[Line:7] If Len(Action)>15 Then BBS94KK.GotoErr(1)
[Line:192] IF instr("|123456|1234567|12345678|123456789|1111111|222222|333333|888888|aaaaaaa","|"& RePassword &"|")>0 or len(Password)<5 Then BBS94KK.GoToErr(40)
弱密码判断无效!
[Line:136] If .Info(57)="0" And Instr(PicUrl,"://")>0 Then .GotoErr(45) '禁止外部图片无效 (没用过滤掉Unicode编码的提交...)
[Line:124] HeadPic=.Fun.HtmlCode(.Fun.GetStr("headpicoption")) '使用论坛自定默认图片无效
可以直接访问:http://localhost/web/test/94kk/UserSetup.asp?Action=mypassword页面。
第一部分 修改前台管理员密码
漏洞就在这个地方,先注册一个用户freejanker,登录。这个时候以文本形戒保存好登录后的Cookie信息,后面要用到。内容如下:94KKwebtest94SID=SID=668440315; 94KKwebtest94SkinID=SkinID=2; 94KKwebtest94=CookiesDate=0&MyPassword=49ba59abbe56e057&LastTime=2006%2D4%2D13+1%3A14%3A27&MyHidden=&MyName=freejanker&MyID=4; ASPSESSIONIDQAADCTSS=EPGJHNHCFPNGIANABADINBIC
之后退出。现在直接访问http://localhost/web/test/94kk/UserSetup.asp?Action=mypassword这个页面。在这里使用刚才保存的Cookie信息,修改Cookie信息里的MyID值为管理员前台账号ID(一般为1,如果不是也可以自己分析一下,或者直接多试一下也就可以了。^_^),在旧密码输入框里填上自己已经注册的帐号密码,新密码自己设定一个就可以。然后再提交,现在管理员前台帐号的密码就是你所修改的密码了。当然你也可以直接抓包修改,再上传来修改密码,也应该可行,我没试过,大家可以试一下,道理是一样的。
(产生这个漏洞的基本原因就是因为在Sub SaveMyPassword开始处忘记加一条类似If Not BBS94KK.FoundUser Then BBS94KK.GotoErr(4)的判断语句。)
待续。。。。。。。。。。。
其实真正发现这个Bug的时间早在一个星期前了,只是一直想做个漏洞利用工具,搞了好长时间,现在总算是做出来了,找了个Powered by 94KK的,测试一下,Pass....