原文来自:https://www.zixuephp.com

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

要破解dedecms管理员密码我们就必须知道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版本的网站点下面的这段代码,代码如下:

  1. <?php
  2. /**********************
  3. DedeCMS管理员帐号重设工具.
  4. http://bbs.dedecms.com/
  5. ***********************/
  6. //error_reporting(E_ALL||~E_NOTICE);
  7. require_once(dirname(__FILE__)."/include/common.inc.php");
  8. if(emptyempty($step))
  9. {
  10. $step=1;
  11. }
  12. ?>
  13. <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  14. <htmlxmlns="http://www.w3.org/1999/xhtml">
  15. <head>
  16. <metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
  17. <title>密码重设工具_GBK</title>
  18. <styletype="text/css">
  19. <!–
  20. body{
  21. font-family:"MSSerif","NewYork",serif;
  22. font-size:12px;
  23. color:#000;
  24. }
  25. table{
  26. border-top-width:1px;
  27. border-right-width:1px;
  28. border-left-width:1px;
  29. border-top-style:dotted;
  30. border-right-style:dotted;
  31. border-left-style:dotted;
  32. border-top-color:#CCC;
  33. border-right-color:#CCC;
  34. border-left-color:#CCC;
  35. }
  36. td{
  37. border-bottom-width:1px;
  38. border-bottom-style:dotted;
  39. border-bottom-color:#CCC;
  40. }
  41. –>
  42. </style>
  43. </head>
  44. <body>
  45. <?php
  46. if($step==1)
  47. {
  48. $dsql->SetQuery("Select*From`detest_admin`whereusertype='10'");
  49. $dsql->Execute("ut");
  50. ?>
  51. <tablewidth="98%"border="0"align="center"cellpadding="3"cellspacing="1">
  52. <tr>
  53. <tdheight="19"bgcolor="#E7E7E7"><tablewidth="96%"border="0"cellspacing="1"cellpadding="1">
  54. <tr>
  55. <tdwidth="24%"><b><strong>第一步:选择管理员账号</strong></b></td>
  56. <tdwidth="76%"align="right">&nbsp;</td>
  57. </tr>
  58. </table></td>
  59. </tr>
  60. <tr>
  61. <tdheight="215"align="center"valign="top"bgcolor="#FFFFFF"><formaction="radminpass.php"method="post"name="form1"id="form1">
  62. <inputtype="hidden"name="step"value="2"/>
  63. <tablewidth="98%"border="0"cellspacing="1"cellpadding="1">
  64. <tr>
  65. <tdheight="60"colspan="2"align="left">本工具是用于新人忘记管理员密码重设所制作,只需要将radminpass.php文件拷贝到根目录,运行&ldquo;http://yousite/radminpass.php(yousite为网站域名)&rdquo;,按照操作执行就可以。<fontcolor="#FF0000">恢复完成后请及时删除这个文件!</font></td>
  66. </tr>
  67. <tr>
  68. <tdwidth="16%"height="30"align="left">选择超级管理员ID:</td>
  69. <tdwidth="84%"align="left">
  70. <selectname='id'style='width:150px'>
  71. <?php
  72. while($myrow=$dsql->GetObject("ut"))
  73. {
  74. echo"<optionvalue='".$myrow->id."'>".$myrow->userid."</option>rn";
  75. }
  76. ?>
  77. </select>
  78. </td>
  79. </tr>
  80. <tr>
  81. <tdheight="60"align="left">&nbsp;</td>
  82. <tdalign="left"><inputtype="submit"name="Submit"value="下一步&gt;"class="coolbgnp"/></td>
  83. </tr>
  84. </table>
  85. </form></td>
  86. </tr>
  87. </table>
  88. <?php
  89. }elseif($step==2){
  90. $row=$dsql->GetOne("Select*From`detest_admin`whereid='$id'");
  91. ?>
  92. <tablewidth="98%"border="0"align="center"cellpadding="3"cellspacing="1">
  93. <tr>
  94. <tdheight="19"bgcolor="#E7E7E7"><tablewidth="96%"border="0"cellspacing="1"cellpadding="1">
  95. <tr>
  96. <tdwidth="24%"><b><strong>第二步:修改管理员密码</strong></b></td>
  97. <tdwidth="76%"align="right">&nbsp;</td>
  98. </tr>
  99. </table></td>
  100. </tr>
  101. <tr>
  102. <tdheight="215"align="center"valign="top"bgcolor="#FFFFFF"><formaction="radminpass.php"method="post"name="form1"id="form1">
  103. <inputname="step"type="hidden"id="step"value="3"/>
  104. <inputtype="hidden"name="id"value="<?phpecho$row['id']?>"/>
  105. <tablewidth="98%"border="0"cellspacing="1"cellpadding="1">
  106. <tr>
  107. <tdwidth="16%"height="30"align="left">用户登录ID:</td>
  108. <tdwidth="84%"align="left"><?phpecho$row['userid']?></td>
  109. </tr>
  110. <tr>
  111. <tdheight="30"align="left">用户笔名:</td>
  112. <tdalign="left"><inputname="uname"type="text"id="uname"size="16"value="<?phpecho$row['uname']?>"style="width:200px"/>
  113. &nbsp;(发布文章后显示责任编辑的名字)</td>
  114. </tr>
  115. <tr>
  116. <tdheight="30"align="left">用户密码:</td>
  117. <tdalign="left"><inputname="pwd"type="text"id="pwd"size="16"style="width:200px"/>
  118. &nbsp;(留空则不修改,只能用'0-9a-zA-Z.@_-!'以内范围的字符)</td>
  119. </tr>
  120. <tr>
  121. <tdheight="60"align="left">&nbsp;</td>
  122. <tdalign="left"><inputtype="submit"name="Submit"value="确定修改"class="coolbgnp"/></td>
  123. </tr>
  124. </table>
  125. </form></td>
  126. </tr>
  127. </table>
  128. <?php
  129. }elseif($step==3){
  130. $pwdm='';
  131. if($pwd!=''){
  132. $pwdm=",pwd='".md5($pwd)."'";
  133. $pwd=",pwd='".substr(md5($pwd),5,20)."'";
  134. }
  135. $query="Update`detest_admin`setuname='$uname'$pwdwhereid='$id'";
  136. $dsql->ExecuteNoneQuery($query);
  137. $query="Update`detest_member`setuname='$uname'$pwdmwheremid='$id'";
  138. $dsql->ExecuteNoneQuery($query);
  139. ShowMsg("成功更改一个帐户!","radminpass.php");
  140. }
  141. ?>
  142. </body>
  143. </html>

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