网站地图    收藏   

主页 > 后端 > 网站安全 >

HDWiKi V4.0.3及HDWiKi V5.1后台上SHELL - 网站安全 - 自学

来源:自学PHP网    时间:2015-04-17 13:03 作者: 阅读:

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

前几天刚爆了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);    // www.2cto.com 时间戳
                     $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不算是漏洞,如果配合注入,使用起来就非常爽了,所以建议将管理员密码设置强度高,进不去后台,也就相对安全了!


作者 江南的鱼

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论