作者:桂林老兵 http://www.gxgl.com/
近日对飞龙文章管理系统 Ver 2.0 Build 20040620 正式版进行了简单的测试。发现其后台登录验证部分竟如此薄弱,令人担忧。
其中的xl.com是俺在本机架设的DNS服务器上的域名。
----------------------------------------
本次测试版本:飞龙文章管理系统 Ver 2.0 Build 20040620 正式版
_usermanage.asp?Action=Add" target=_blank>http://xl.com/flnews/admin_usermanage.asp?Action=Add
返回login.asp
看代码:
call checkFlag()
sub checkFlag()
if request.cookies("12912")("UserName")="" then
response.redirect "login.asp"
else
if request.cookies("12912")("Flag")>1 then
response.write "<br><p align=center>您没有操作的权限</p>"
response.end
end if
end if
end sub
这是程序中对这个文件权限的验证。很幸运,暂时只看到COOKIES验证。
用俺的COOKIES浏览器先登录一次,登录后得到的COOKIES信息如下:
ASPSESSIONIDAACTDSCQ=JJLJPDOCEKIEIANDMGGNEIID;12912=password=469e80d32c0559f8&UserName=admin&UserID=1&Flag=1&usercookies=0; iCount=0
分析:由于这一页并不要SESSION验证,所以ASPSESSION可以去掉;
然后先退出登录。再输入
_usermanage.asp?Action=Add" target=_blank>http://xl.com/flnews/admin_usermanage.asp?Action=Add
这时会返回login.asp、
在cookies那里填上这段COOKIES信息:12912=UserName=admin&Flag=1
再输入
_usermanage.asp?Action=Add" target=_blank>http://xl.com/flnews/admin_usermanage.asp?Action=Add
回车。
看到了可爱的添加管理员页面,呵呵。
添加test管理员,密码也是test
权限当然是超级管理员啦.点增加,添加成功。再用这个帐号登录即可。
00000000000000000000
为什么会这样呢。。这是程序作者的经验不足造成的。
一,只在admin_admin.asp一页中加入了
<%
session.Timeout=sessionTimeOut
if session("username")="" then
response.Redirect("login.asp")
end if
%>
但这只是一个框架页,其它子框架中的页面并没有这一验证。
二,COOKIES的验证太草率,只凭简单的有或无来进行验证。很容易进行欺骗的。
......................
临时解决方法:
在checkflag()作修改
if request.cookies("12912")("UserName")="" or session("username")="" then
......
。。。。。。。。。。。。。。
在此先告一段落,从这一处漏洞来看,这套程序中一定还有其它的漏洞,有兴趣的朋友可以自个研究。
文章上传类型限制更改页面/文章添加/上传ASP文件/都只是COOKIES进行验证。其实不添加管理员也可以进行任何操作的。
此漏洞己通知作者_blank>http://www.flylong.net/了。
到google.com搜Article.asp?ArtID=关键字出来的基本上都是。
希望大家不要破坏,帮助管理员把漏洞修补好。
还有,
admin_upfile.asp
user_upfile.asp这两个文件简直动网以前那个上传漏洞的再现,晕。而且这两个文件不要登录也可以操作。不过在用本站的上传工具上传时注意在cookies一栏中填上
ArtID=1111;
加为他的文件名是以artid为依据的。