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

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

缺陷编号:wooyun-2014-074065

漏洞标题:YiDacms 最新版信息泄露及绕过口令暴力操作后台

相关厂商:yidacms.com

漏洞作者: xfkxfk

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

修复时间:2014-11-25 17:08

公开时间:2014-11-25 17:08

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

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-08-27: 细节已通知厂商并且等待厂商处理中
2014-08-27: 厂商已经确认,细节仅向厂商公开
2014-08-30: 细节向第三方安全合作伙伴开放
2014-10-21: 细节向核心白帽子及相关领域专家公开
2014-10-31: 细节向普通白帽子公开
2014-11-10: 细节向实习白帽子公开
2014-11-25: 细节向公众公开

简要描述:

YiDacms最新版存在信息泄露,以及绕过口令暴力操作后台任意功能

详细说明:

易达CMS 企业建站系统
当前最新版本是:YidaCms X3.2(20140718)版
第一处漏洞:服务器信息泄露:
文件:/Yidacms/admin/admin_syscome.asp

<%@language="vbscript" codepage="65001"%>
<%
'※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
'※ ※
'※ 易达CMS企业建站系统、易达WAP手机建站系统 ※
'※ 软件由哈尔滨伟成科技有限公司开发完成 ※
'※ 著作权登录号:2012SR001955 网址:http://yidacms.com ※
'※ 软件享有著作权,未经公司同意禁止去除版权信息或出售源码。 ※
'※ ※
'※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
option explicit
response.buffer = true
server.scripttimeout="2000"
on error resume next
dim starttime:starttime=timer()
dim vbcrlf:vbcrlf=chr(32)&chr(10)
dim server_os,server_cpu,server_cpus
dim WSshell,isobjver


没有判断后台权限,可以直接访问服务器详细信息
建议加上后台权限判断访问:

<!--#include file="CheckAdmin.asp" -->


这里泄露的信息就是一个服务器探针,具体见截图:
服务器概况:http://10.65.40.6/Yidacms/admin/admin_syscome.asp?stype=server_info

111.png


服务器支持组件:http://10.65.40.6/Yidacms/admin/admin_syscome.asp?stype=com_list

222.png


服务器速度:http://10.65.40.6/Yidacms/admin/admin_syscome.asp?stype=speed_info

333.png


这些服务器的信息还是非常重要的。
第二处绕过口令暴力操作后台
YiDacms后台登陆有一个管理员密码,有一个口令
这个口令默认是12345,但是大部分应该是会修改的
但是后台的权限判断处,并没有判断此口令
我们来看看判断后台权限的文件:
/Yidacms/admin/CheckAdmin.asp

username = login_Str(request.Cookies("username"))
password = login_Str(request.Cookies("password"))
cookies_md5 = request.Cookies("cookies_md5")
dim admin_name,admin_pass,admin_qx,admin_aqx
set rs = server.createobject("adodb.recordset")
sql="select * from shuaiweb_vipadministrator where username='"&username&"'"
rs.open sql,dbok,1,1
admin_name = rs("username")
admin_pass = rs("password")
admin_qx = rs("wait_ader")
admin_aqx = rs("wait_adyi")
rs.Close
set rs=nothing
if cookies_md5 <> left(MD5(admin_name&admin_pass),10) then
response.write "checkadmin.asp-登录超时,请重新登录!"
response.cookies("username") = ""
response.cookies("password") = ""
response.end
end if


这里根据cookie中的username查询处此username对应的用户名密码,然后将用户名密码进行一次md5去10位,再跟cookie中的cookies_md5进行对比,如果相等即可操作后台
那么这里的username从cookie中获取,我们可控,这里cookie中的cookies_md5也是可控的
那么只要我们的username存在,只需要爆破提交cookies_md5即可
这里的cookies_md5为10为字符串,破解还是可以的。
如后台修改网站基本设置:
http://10.65.40.6/Yidacms/admin/admin_system.asp
username=admin,是存在的
然后暴力提交cookies_md5的值即可。

444.png


其他地方的后台操作,同样。

漏洞证明:

来一张官方demo的服务器探针信息:
http://wap.yidacms.com/yidawap/syscome.asp
服务器信息

555.png


用户信息:http://wap.yidacms.com/yidawap/syscome.asp?stype=safe_info

666.png

修复方案:

加上后天权限判断,加上口令验证或者加强权限判断。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2014-08-27 17:40

厂商回复:

谢谢提供

最新状态:

暂无


漏洞评价:

评论