GDOUCTF 2023 web部分题解

多多包涵

这里是一个还没入门web的新手的比赛记录(第一次参加比赛)

hate eat snake

在这里插入图片描述
进入题目按F12发现不能调出源代码,等死亡后弹出窗口以后(或者直接鼠标右键打开源代码)可以调出,刷新一下就可以看见源码
在这里插入图片描述
找到js文件
在这里插入图片描述
将speed++删掉,这样速度不会增加,等待60秒就可以了。(作为一个第一次打比赛的菜鸡就写出来这一道题,呜呜)

受不了一点

<?php
error_reporting(0);
header("Content-type:text/html;charset=utf-8");
if(isset($_POST['gdou'])&&isset($_POST['ctf'])){
    $b=$_POST['ctf'];
    $a=$_POST['gdou'];
    if($_POST['gdou']!=$_POST['ctf'] && md5($a)===md5($b)){
        if(isset($_COOKIE['cookie'])){
           if ($_COOKIE['cookie']=='j0k3r'){
               if(isset($_GET['aaa']) && isset($_GET['bbb'])){
                  $aaa=$_GET['aaa'];
                  $bbb=$_GET['bbb'];
                 if($aaa==114514 && $bbb==114514 && $aaa!=$bbb){
                   $give = 'cancanwordflag';
                   $get ='hacker!';
                   if(!isset($_GET['flag']) && !isset($_POST['flag'])){
                         die($give);
                    }
                   if($_POST['flag'] === 'flag' || $_GET['flag'] === 'flag'){
                       die($get);
                    }
                    foreach ($_POST as $key => $value) {
                        $$key = $value;
                   }
                    foreach ($_GET as $key => $value) {
                         $$key = $$value;
                    }
                   echo $flag;
            }else{
                  echo "洗洗睡吧";
                 }
    }else{
        echo "行不行啊细狗";
        }
  }
}
else {
  echo '菜菜';
}
}else{
  echo "就这?";
}
}else{
  echo "别来沾边";
}
?>

点开题目发现有一串代码。按要求一步一步来看代码,发现先POST一个ctf和gdou变量,并且要过md5强碰撞,用数组的方法绕过。之后按要求把cookie加成j0k3r。最后因为POST和GET中传递的flag值不能为空,在分别POST和GET一个flag就好了。但是看了一下讨论区不知道什么异常原因出不来回显,这题就一笔带过吧。

EZ WEB

在这里插入图片描述
进入题目发现他说flag在附近,查看源码。
在这里插入图片描述
发现提示src
进入这个目录里


import flask

app = flask.Flask(__name__)

@app.route('/', methods=['GET'])
def index():
  return flask.send_file('index.html')

@app.route('/src', methods=['GET'])
def source():
  return flask.send_file('app.py')

@app.route('/super-secret-route-nobody-will-guess', methods=['PUT'])
def flag():
  return open('flag').read()

发现源码中要求最后一步,用PUT方式打开目录super-secret-route-nobody-will-guess
在这里插入图片描述
得出flag

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值