ESCMS cookies欺骗漏洞

2010-03-06T00:00:00
ID SSV:19234
Type seebug
Reporter Root
Modified 2010-03-06T00:00:00

Description

<% if Request.cookies(CookiesKey)("ES_admin")="" then ''注意这里哦,他是通过COOKIE验证ES_admin是否为空,我们可以伪造一个值,叫他不为空 ''CookiesKey在inc/ESCMS_Config.asp文件中,默认为ESCMS$_SP2 Call Err_Show() Response.End() End if ...... %> 首先我们打开http://sitedir.com.cn/admin/es_index.html

然后在COOKIE结尾加上 ; ESCMS$_SP2=ES_admin=st0p;

修改,然后刷新

进后台了嘎..

然后呢…提权,嘿嘿,admin/up2.asp,上传目录参数filepath过滤不严,导致可截断目录,生成SHELL,看代码

...... formPath=upload.form("filepath") ''此处没有过滤 if formPath="" then formPath="../Upfile" end if Dim formPath1 formPath1="Upfile/" ''在目录后加(/) if right(formPath,1)<>"/" then formPath=formPath&"/" end if for each formName in upload.file ''列出所有上传了的文件 set file=upload.file(formName) ''生成一个文件对象 if file.filesize<100 then response.write "请先选择你要上传的图片! [ <a href=# onclick=history.go(-1)>请重新上传</a> ]" response.end end if

fileExt=lcase(file.FileExt) if CheckFileExt(fileEXT)=false then response.write "文件格式不正确! [ <a href=# onclick=history.go(-1)>请重新上传</a> ]" response.end end if

''randomize ranNum=int(90000*rnd)+10000 Dim tempname,temppath tempname=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum&"."&fileExt temppath=formPath1&tempname filename=formPath&tempname if file.FileSize>0 then ''如果 FileSize > 0 说明有文件数据 result=file.SaveToFile(Server.mappath(filename)) ''保存文件,这里地址就会变成我们截断的SHELL名称 ......

ESCMS V1.0 SP1 Build 1125 暂无

                                        
                                            
                                                利用方法,可以抓包,然后改一下,NC上传,还可以直接用DOMAIN等工具提交.

成功了,shell地址为http://www.sitedir.com.cn/admin/diy.asp
存在这个上传问题的还有admin/downup.asp,不过好像作者的疏忽,没有引用inc/ESCMS_Config.asp,导致打开此页面失败..

在版本ESCMS V1.0 正式版中,同样存在上传问题admin/up2.asp和admin/downup.asp都可利用,只不过cookies欺骗不能用了,因为此版本用 session来验证登陆…