当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-074083

漏洞标题:YiDacms最新版漏洞大礼包

相关厂商:yidacms.com

漏洞作者: xfkxfk

提交时间:2014-08-27 17:47

修复时间:2014-11-22 17:48

公开时间:2014-11-22 17:48

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:15

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-08-27: 细节已通知厂商并且等待厂商处理中
2014-09-01: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-10-26: 细节向核心白帽子及相关领域专家公开
2014-11-05: 细节向普通白帽子公开
2014-11-15: 细节向实习白帽子公开
2014-11-22: 细节向公众公开

简要描述:

YiDacms最新版漏洞大礼包

详细说明:

易达CMS 企业建站系统
当前最新版本是:YidaCms X3.2(20140718)版
这里我们主要看看后台比较严重的漏洞
关于xss和sql注入我们就不多讲了,后台的SQL注入很多都没有用全局过滤,导致sql注入
首先来看看第一处目录遍历,任意文件读取,拿shell:
文件/Yidacms/admin/admin_fso.asp:

ElseIf action = ("Edit") then	'读取文件
Dim FileAll
FilePath = Trim(Request.Form("ThisDir"))
FileName = Trim(Request.Form("FileId"))
FilePath1 = Server.MapPath(""&webpath&"template/") & FilePath & "\" & FileName
If Fso.FileExists(FilePath1) then
Set FileOpen = Fso.OpenTextFile (FilePath1,1)
FileAll = FileOpen.ReadAll
FileOpen.close
If IsReplace then FileAll = Replace(FileAll,"textarea","\\textarea\\")
Else
Response.write "<script>alert('发生错误,文件已经被删除或者损坏!');location.replace('admin_fso.asp');</script>"
End If


这里在读取文件时,没有任何过滤处理,直接拼接文件路径,然后直接读取,显示
这里我们读取inc/db.asp文件,敏感信息都在这里了:

100.png


这里读取到了口令
正好这列修改文件是需要口令,那么我么修改文件后,加入我们的后门shell
即可拿到shell
第二处目录遍历
http://10.65.40.6/Yidacms/admin/admin_upload.asp?action=Open&Dir=\..\
修改Dir即可遍历全站文件

101.png


第三处任意文件删除
文件:/Yidacms/admin/admin_login.asp

Sub DelAll()
Dim FolderId,FileId,ThisDir,FileNum,FolderNum,FilePath,FolderPath
FolderId = Split(Request.Form("FolderId"),",")
FileId = Split(Request.Form("FileId"),",")
ThisDir = trim(Request.Form("ThisDir"))
FileNum=0
FolderNum=0
If Ubound(FolderId) <> -1 then '删除文件夹
For i = 0 to Ubound(FolderId)
FolderPath = Server.MapPath(""&webpath&"uploadimg/") & ThisDir & "\" & trim(FolderId(i))
If Fso.FolderExists(FolderPath) then
Fso.DeleteFolder FolderPath,true
FolderNum = FolderNum + 1
End If
Next
End If
If Ubound(FileId) <> -1 then '删除文件
For j = 0 to Ubound(FileId)
FilePath = Server.MapPath(""&webpath&"uploadimg/") & ThisDir & "\" & trim(FileId(j))
response.write(FilePath)
If Fso.FileExists(FilePath) then
Fso.DeleteFile FilePath,true
FileNum = FileNum + 1
response.write(FilePath)
End If
Next
End If
Response.write "<script>alert('\n恭喜,删除成功\n\n"& FolderNum &" 个文件夹被删除\n"& FileNum &" 个文件被删除');window.location.href=('"& Replace(Request.ServerVariables("HTTP_REFERER"),"\","\\") &"')</script>"
End Sub


删除文件时,直接拼接路径,导致任意文件删除:

102.png


第三处修改上传类型,上传任意文件拿shell
全局——条件设置

103.png


这里不允许直接设置asp,我们添加cer类型即可

104.png


等等还有其他很多问题。。。。。。

漏洞证明:

见详细说明

修复方案:

版权声明:转载请注明来源 xfkxfk@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2014-11-22 17:48

厂商回复:

最新状态:

2014-09-02:看了您的漏洞以后。我觉得存在一个问题。 你的都是基于在管理员已登录状态的状态下才可以操作的。 如果是在管理员没有登录的状态下,您还能利用这些漏洞吗? 在线文件编辑,除了管理员登录以后,还要在条件设置中开启权限才可以。