Catf1ag CTF Pwn & Reverse

前言

Catf1agCTF 是一个面向所有CTF(Capture The Flag)爱好者的综合训练平台,尤其适合新手学习和提升技能 。该平台由catf1ag团队打造,拥有超过200个原创题目,题目设计注重知识点的掌握,旨在帮助新手掌握CTF相关的各种技能 。除了新手题目,平台也包含难度不一的题目,适合不同水平的CTF参与者 。

平台上的题目类型多样,包括WEB、MISC、CRYPTO、LINUX、PWN/ATTACK、REVERSE等,题目分数制度从60分到100分不等,难度从1星到5星 。题目提交时需要包含完整的题目环境、flag以及writeup,以确保题目的完整性和可解性 。

此外,Catf1agCTF平台还提供了一些辅助工具和资源,如在线工具箱、SRC资料和HW资料等,以帮助用户更好地进行学习和实战演练 。平台的网址为 https://catf1ag.cn/,有意向的用户可以通过官方邮箱catf1ag@163.com进行联系 。对于想要加入交流的用户,平台还提供了官方QQ群和频道,方便用户之间的互动和交流 。

需要注意的是,平台上的部分题目可能需要特定的环境配置,例如WEB题目会包含dockerfile,而PWN/ATTACK题目则必须包含dockerfile以确保题目环境的完整性 。对于题目的flag格式,平台有统一的要求,即flag需要以"catf1ag{}"的格式呈现 。

总的来说,Catf1agCTF是一个资源丰富、适合各个水平CTF爱好者的训练平台,无论是新手还是有经验的参与者,都能在这里找到适合自己的学习和提升机会。

一、欢迎大家来到Catf1ag综合训练平台

打开靶场

二、easy_python

打开靶场

下载文件发现是经过 PyInstaller 编译后的文件

下载 pyinstxtractor.py 工具进行反编译

https://github.com/extremecoders-re/pyinstxtractor

反编译过后可以看到有一个 flag.pyc 

记事本打开即可拿到 flag

三、class

打开靶场

下载文件后是个 class 文件,直接在 IDEA 中打开

import java.util.ArrayList;
import java.util.Scanner;

public class Reverse {
    public Reverse() {
    }

    public static void main(String[] var0) {
        # 创建一个 Scanner 对象用于从控制台读取用户输入
        Scanner var1 = new Scanner(System.in);

        System.out.println("Please input the flag :");

        # 从用户输入读取下一个字符串(以空格作为分隔符)
        String var2 = var1.next();

        System.out.println("Your input is :");
        System.out.println(var2);

        # 将字符串转换为字符数组,以便逐个字符进行处理
        char[] var3 = var2.toCharArray();

        Encrypt(var3);
    }

    public static void Encrypt(char[] var0) {
        # 创建一个空的 ArrayList 用于存储加密后的字符
        ArrayList var1 = new ArrayList();

        # 遍历输入的字符数组 var0
        for(int var2 = 0; var2 < var0.length; ++var2) {
            # 将字符的 ASCII 码加上 64,结果与 32 进行按位异或运算
            int var3 = var0[var2] + 64 ^ 32;

            # 将加密后的结果存储到 var1 列表中
            var1.add(var3);
        }

        int[] var5 = new int[]{131, 129, 148, 134, 140, 129, 135, 155, 138, 129, 150, 129, 191, 133, 129, 147, 153, 191, 133, 129, 147, 153, 157};

        ArrayList var6 = new ArrayList();

        for(int var4 = 0; var4 < var5.length; ++var4) {
            var6.add(var5[var4]);
        }

        System.out.println("Result:");
        
        # 将用户输入加密后的结果 var1 与预定义的加密结果 var6 进行比较。如果两者相等,表示输入正确
        if (var1.equals(var6)) {
            System.out.println("Congratulations!");
        } else {
            System.err.println("Error!");
        }

    }
}

编写 Python 脚本逆向 

flag = ''

st = [131, 129, 148, 134, 140, 129, 135, 155, 138, 129, 150, 129, 191, 133, 129, 147, 153, 191, 133, 129, 147, 153, 157]
for i in range(0,len(st)):
    for x in range(0,150):
        temp = x + 64 ^ 0x20

        if temp == st[i]:
            flag += chr(x)
            break

print(flag)

拿到 flag 

四、[原九小时AK赛] 遗失的物品

打开靶场

下载文件是一个 apk

参考链接 

天权信安&catf1ag网络安全联合公开赛---wp_原九小时ak赛wp catf1ag ctf-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suc2es2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值