织梦DEDECMS管理员密码破解方法总结

刚接手客户的一个由织梦dedecms搭建的企业网站,管理员密码找不到了,还好有ftp的密码,由dede的mysql密码配置文件:common.inc.php获得了mysql权限。
admin表中pwd中赫然写着:c3949ba59abbe56e057f,我勒个去,这是啥加密方式,见过混合加密的,但一般最后都是md5一下,应该16或32位,这个什么呀??20位….

百度了一下织梦管理员密码的加密方式,发现想这个方法的人绝了,一般都是混合字符串进去然后md5,dedecms呢?直接md5然后取32位中从第五位开始的20个字符。按照概率来说这20个确实可以用于比对密码是否正确。

转念一想不对呀,大名鼎鼎的md5 16位加密不是也是从32位中提取的吗?也就是从第九位开始取16位,正好在这20个字符串里。

就是说比如原密码是123456
他的md5 32是:e10adc3949ba59abbe56e057f20f883e
dede取:e10adc3949ba59abbe56e057f20f883e? 就是:c3949ba59abbe56e057f2
实际上md5 16是:?e10adc3949ba59abbe56e057f20f883e 就是:49ba59abbe56e057
也就是说你的dede加密密码只要从第四位开始取16位就是md5 16的密码:c3949ba59abbe56e057f2

这种几乎是解决不了了,但我们可以使用一些简单的办法,直接MD5一个密码,再前后尝试,还有一种办法。

密码重设工具有UTF-8/GBK两个版本,适用于 DedeCMS V5.3-5.6 版本。

这样可以方便新手操作。也可以进数据库对加密后的密码进行破解,这样也能找回忘记了的密码。

一、GBK版本的网站点下面的 show source  复制这段代码。

 代码如下 复制代码

<?php

/**********************
DedeCMS 管理员帐号重设工具.
http://bbs.dedecms.com/
***********************/
//error_reporting(E_ALL || ~E_NOTICE);
require_once(dirname(__FILE__)."/include/common.inc.php");
if(empty($step))
{
$step = 1;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>密码重设工具_GBK</title>
<style type="text/css">
<!--
body {
font-family: "MS Serif", "New York", serif;
font-size: 12px;
color: #000;
}
table {
border-top-width: 1px;
border-right-width: 1px;
border-left-width: 1px;
border-top-style: dotted;
border-right-style: dotted;
border-left-style: dotted;
border-top-color: #CCC;
border-right-color: #CCC;
border-left-color: #CCC;
}
td {
border-bottom-width: 1px;
border-bottom-style: dotted;
border-bottom-color: #CCC;
}
-->
</style>
</head>
<body>
<?php
if($step==1)
{
$dsql->SetQuery("Select * From `#@__admin` where usertype='10'");
$dsql->Execute("ut");
?>
<table width="98%" border="0" align="center" cellpadding="3" cellspacing="1">
  <tr>
    <td height="19" bgcolor="#E7E7E7"><table width="96%" border="0" cellspacing="1" cellpadding="1">
      <tr>
        <td width="24%"><b><strong>第一步:选择管理员账号</strong></b></td>
        <td width="76%" align="right">&nbsp;</td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td height="215" align="center" valign="top" bgcolor="#FFFFFF"><form action="radminpass.php" method="post" name="form1" id="form1">
      <input type="hidden" name="step" value="2" />
      <table width="98%" border="0" cellspacing="1" cellpadding="1">
<tr>
          <td height="60" colspan="2" align="left">本工具是用于新人忘记管理员密码重设所制作,只需要将radminpass.php文件拷贝到根目录,运行&ldquo;http://yousite/radminpass.php(yousite为网站域名)&rdquo;,按照操作执行就可以。<font color="#FF0000">恢复完成后请及时删除这个文件!</font></td>
          </tr>
        <tr>
          <td width="16%" height="30" align="left">选择超级管理员ID:</td>
          <td width="84%" align="left">
            <select name='id' style='width:150px'>
              <?php
  while($myrow = $dsql->GetObject("ut"))
  {
  echo "<option value='".$myrow->id."'>".$myrow->userid."</option>rn";
  }
  ?>
              </select>

            </td>
        </tr>
        <tr>
          <td height="60" align="left">&nbsp;</td>
          <td align="left"><input type="submit" name="Submit" value="下一步&gt;" class="coolbg np" /></td>
        </tr>
      </table>
    </form></td>
  </tr>
</table>
<?php
}elseif($step==2){
$row = $dsql->GetOne("Select * From `#@__admin` where id='$id'");
?>
<table width="98%" border="0" align="center" cellpadding="3" cellspacing="1">
  <tr>
    <td height="19" bgcolor="#E7E7E7"><table width="96%" border="0" cellspacing="1" cellpadding="1">
      <tr>
        <td width="24%"><b><strong>第二步:修改管理员密码</strong></b></td>
        <td width="76%" align="right">&nbsp;</td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td height="215" align="center" valign="top" bgcolor="#FFFFFF"><form action="radminpass.php" method="post" name="form1" id="form1">
      <input name="step" type="hidden" id="step" value="3" />
      <input type="hidden" name="id" value="<?php echo $row['id']?>" />
      <table width="98%" border="0" cellspacing="1" cellpadding="1">
        <tr>
          <td width="16%" height="30" align="left">用户登录ID:</td>
          <td width="84%" align="left"><?php echo $row['userid']?></td>
        </tr>
        <tr>
          <td height="30" align="left">用户笔名:</td>
          <td align="left"><input name="uname" type="text" id="uname" size="16" value="<?php echo $row['uname']?>" style="width:200px" />
            &nbsp;(发布文章后显示责任编辑的名字) </td>
        </tr>
        <tr>
          <td height="30" align="left">用户密码:</td>
          <td align="left"><input name="pwd" type="text" id="pwd" size="16" style="width:200px" />
            &nbsp;(留空则不修改,只能用'0-9a-zA-Z.@_-!'以内范围的字符) </td>
        </tr>
        <tr>
          <td height="60" align="left">&nbsp;</td>
          <td align="left"><input type="submit" name="Submit" value="确定修改 " class="coolbg np" /></td>
        </tr>
      </table>
    </form></td>
  </tr>
</table>
<?php
}elseif($step==3){
$pwdm = '';
if($pwd!=''){
$pwdm = ",pwd='".md5($pwd)."'";
$pwd = ",pwd='".substr(md5($pwd),5,20)."'";
}
$query = "Update `#@__admin` set uname='$uname' $pwd where id='$id'";
$dsql->ExecuteNoneQuery($query);
$query = "Update `#@__member` set uname='$uname' $pwdm where mid='$id'";
$dsql->ExecuteNoneQuery($query);
ShowMsg("成功更改一个帐户!","radminpass.php");
}
?>
</body>
</html>

三、保存为radminpass.php,上传到网站根目录运行“http://yousite/radminpass.php(yousite为网站域名)”,按照操作执行就可以。恢复完成后请及时删除这个文件!

 

时间: 2024-09-22 16:26:13

织梦DEDECMS管理员密码破解方法总结的相关文章

织梦Dedecms转换WordPress的方法

一.转换之前的工作 1.准备测试网站 在测试环境中,分别搭建了一个织梦站点和一个wp站点,并且分别用不同的数据库.(当然安装在同一个数据库中也可以,不过为了方便新手理解,这里每个网站都用单独的数据库) 2.转换目标和结果 通常我们把织梦转换成wordpress的目标,最重要的就是把网站栏目和栏目对应的文章转换过去. 本教程的转换结果是,可以把文章栏目.文章标题.文章内容.文章日期.文章点击数文章分类都转换成功,但文章tag标签转换不过来,不过不影响网站内容,所以这里不转换tag标签. 3.操作前

织梦dedecms二级菜单实现方法

例子1 修改channelartlist.lib.php  代码如下 复制代码 if($typeid==0 || $typeid=='top') {         $tpsql = " reid=0 AND ispart<>2 AND ishidden<>1 AND channeltype>0 ";     } 修改为  代码如下 复制代码 if($typeid=='tops') {         $tpsql = " reid=0 AND

织梦Dedecms设置伪静态具体方法

首先在dede后台开启伪静态(开启的方法在系统参数-核心设置) 第一步. 首先栏目和文章最好设置成动态浏览. 这样才不会生成静态html文件. 第二步. 设置重写规则. 在系统目录下加一个 .htaccess文件. 内容为:  代码如下 复制代码 RewriteEngine On RewriteRule ^plus/list-([0-9]+).html$ /plus/list.php?tid=$1 RewriteRule ^plus/list-([0-9]+)-([0-9]+)-([0-9]+)

织梦dedecms模板乱码解决方法

DEdecms有gbk和utf-8两个版本的哦, 乱码是因为字符编码不一致造成的,出现的原因有以下几种: 一.你模板采用的字符编码与你安装的版本字符编码不一致:比如你安装的是UTF-8的dedecms系统,而制作的模板却采用了默认的GBK1312的字符编码,那么自然会乱码. 二.你制作的多个模板有的编码是UTF-8,有的是GBK1312,不乱才怪. 三.情况是以上二种情况同时存在,兼而有之,导致天下大乱 解决办法  代码如下 复制代码 <META http-equiv=Content-Type

织梦DedeCMS投票漏洞解决方法

打开/include/dedevote.class.php文件,查 找  代码如下 复制代码 $this->dsql->ExecuteNoneQuery("UPDATE `#@__vote` SET totalcount='".($this->VoteInfos['totalcount']+1)."',votenote='".addslashes($items)."' WHERE aid='".$this->VoteID.

织梦dedecms 5.7 GBK按照字母搜索的实现方法

目前织梦dedecms v5.7已正式发布,但在实际的使用环境中往往我们需要进行一些特定功能的实现,比如按照字母搜索等,下面我们来说一下该功能是如何实现的,主要的方法就是提取发布资源中第一个字母,存储到数据表中,然后进行索引. DedeCMS 基于PHP和MySQL技术开发,可同时使用于Windows.Linux.Unix平台,环境需求如下: 1.Windows 平台:    IIS/Apache + PHP4/PHP5 + MySQL3/4/5    如果在windows环境中使用,建议用De

织梦dedecms后台验证码错误问题集合及解决方法

织梦dedecms后台验证码持续错误问题 相信很多用户,在织梦后台登录的时候,会遇到验证码无法显示或者持续错误等等的问题,那么这个问题到底应该如何来解决呢.这里有几个小技巧和原因. (1)空间已满 第一个原因相信一般都是很难发生的,那就是您的主机空间是否已经满了,这个是基本的导致这个问题的罪魁祸首. (2)清除缓存 就像浏览器一样,长久的访问一个网站,浏览器会自动将此网站识别为经常访问的网站而存储在缓存里,这样的话,所导致的就是您输入再多次的验证码得到的结果都是错误的.那么,该如何来进行缓存的清

织梦DedeCMS V5.7添加导航条下拉子菜单方法

在dedecms5.5中官方模板里设置了下拉菜单的显示,但是之后的几个版本里面下拉菜单就没有再用在模板上了,早前几天,部落听到几个使用织梦DedeCMS V5.7模板问到这个问题,网上找了一下,有一个方法比较靠谱,大家可以参考一下. 首先你需要把DedeCMS5.6程序文件夹\dede\img里的mmenubg.gif(绿色背景图片,适用于绿色主题模板)或者DedeCMS5.5程 序文件夹\templets\images里的mmenubg.gif(蓝色背景图片,适用于蓝色主题模板)复制到Dede

Nginx系统中织梦Dedecms的安全设置

首先需要说明的是,任何程序都是有漏洞的,我们需要做好一些必要的防范,来减少由于程序漏洞造成的损失.织梦的漏洞多,这个是很多人的想法.不过大家如果做好了织梦系统的文件夹权限什么的设置,很多漏洞也是用不上的. 这些安全措施,织梦官方已经给出过很多教程了,如织梦后台中uploads等文件夹执行php文件权限的问题.今天主要说的就是Nginx下取消织梦uploads文件夹权限的问题.如果是在Apache中,可以在.htaccess中通过如下的代码解决:  代码如下 复制代码 RewriteEngine