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

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

缺陷编号:wooyun-2012-06086

漏洞标题:HDWiKi V 4.0.3 及 HDWiKi V5.1 后台上SHELL

相关厂商:互动在线(北京)科技有限公司

漏洞作者: 江南的鱼

提交时间:2012-04-15 23:23

修复时间:2012-04-20 23:24

公开时间:2012-04-20 23:24

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

危害等级:低

自评Rank:3

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-04-15: 细节已通知厂商并且等待厂商处理中
2012-04-20: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

前几天刚爆了5.1的注入漏洞,在对一个站检测时,发现对方使用的是HDWiKi V 4.0.3版,网上关于模板写马的,好像在这个版本用不了,研究了下,就发现了这个上传WEBshell的方法!

详细说明:

HDWiKi V 4.0.3 在在线安装插件时,没有对压缩包的文件里面的文件做检测,可以先将马放在压缩包里面,再在线安装!
如图:


安装好后,马马就在plugins下面对应的插件目录里面,具体如何找,你懂的!
HDWiki V5.1 的就简单了,模块下面有个文件管理!直接可以上传的!


找回密码链接,可以预测:
这个有点难度,主要有2点: 1,要知道被破账号的邮件地址; 2,要抓准确 服务器的时间戳。 百科本身刷新,cookie里面有一个13位JAVA的时间戳,我测试了几次,去掉后三位,精度也和PHP的不一样。应该有其他方法从百科的里面找到,我没测试。
5.1版本的control/user.php里面的代码

$timetemp=date("Y-m-d H:i:s",$this->time);    //时间戳
$verification= rand(1000,9999); //4位随机数
$encryptstring=md5($this->time.$verification);
$reseturl=WIKI_URL."/index.php?user-getpass-".$user['uid'].'-'.$encryptstring;
$_ENV['user']->update_getpass($user['uid'],$encryptstring);


4.03版本control/user.php里面的代码的如下:

$timetemp=date("Y-m-d h:i:s",$this->time);
while (($verification = rand() % 10000) < 1000);
$encryptstring=md5($this->time.$verification);
$reseturl=$this->setting['site_url']."/index.php?user-getpass-".$user['uid'].'-'.$encryptstring;


我找的方法可能比较特殊,因为目标站有一个Discuz x2论坛,我用鼠标点击软件,几乎在一秒内,点了找回密码,和刷新了论坛发帖,用论坛发帖里面的时间戳,这样误差几乎为零。
4位的随机码,还是很好破的,下面来图:


在这次检测中,还发现了4.03版本后台文件任意下载和删除问题,需要管理员权限。对目录限制不严,只是将小点转换成星号,删除文件同理!
index.php?admin_db-downloadfile-/**/**/config*php 下载config.php
index.php?admin_db-remove-/**/**/config*php 删除config.php
5.1版本也存在,不过5.1已经有文件管理,貌似这个就麻烦很多。不过也算一个缺陷吧!
总结:
我对网上说的包含漏洞,没有测试成功,主要原因还是截断,现在能截断的很少。
我对网上说上传任意文件的漏洞,也做了验证,4.0.3 和 5.1 的,没有对5.0的做验证,
发现对文件还是有检测,后缀名突破不了,可能是能力不足的问题吧!

漏洞证明:

上传漏洞,我都放在详细说明里面了,有图有真相。
这下面代码是 找回密码的一段
4.03版本control/user.php里面的代码的如下:

$timetemp=date("Y-m-d h:i:s",$this->time);
while (($verification = rand() % 10000) < 1000);
$encryptstring=md5($this->time.$verification);
$reseturl=$this->setting['site_url']."/index.php?user-getpass-".$user['uid'].'-'.$encryptstring;


修复方案:

貌似 4.03版本 用的人很少了吧,厂家可能不会修复了,赶紧升级最新版!
5.1版的上传webshell不算是漏洞,如果配合注入,使用起来就非常爽了,所以建议将管理员密码设置强度高,进不去后台,也就相对安全了!

版权声明:转载请注明来源 江南的鱼@乌云


漏洞回应

厂商回应:

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

忽略时间:2012-04-20 23:24

厂商回复:

最新状态:

暂无