cyi 源鲁杯2024第二轮wp

Round 2

Web

[Round 2] Cmnts

查看源码,base64解码得到路径get_th1s_f1ag.php

parse_str($_SERVER['QUERY_STRING']);    #将url?后面的字段截取,并分别设置成变量(变量覆盖)

主要逻辑在这块(感觉应该是想考变量覆盖的,但是好像代码写错了?)

if (isset($key) && $key === 'a7a795a8efb7c30151031c2cb700ddd9') {
    echo $flag;
}



Crypto

[Round 2] ezAES

给了key和iv,用cbc模式,自己填充一下padding就行

# encoding:utf-8
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad

key = b'YLCTF-CRYPTO'
iv = b'YLCTF-IV'

key += b'\x00' * (16 - len(key))  # 扩展到16字节
iv += b'\x00' * (16 - len(iv))    # 扩展到16字节

aes = AES.new(key,2,iv)

encrypted_data = b'\xed\x1d]\xe6p\xb7\xfa\x90/Gu\xf4\xe2\x96\x84\xef90\x92e\xb4\xf8]"\xfc6\xf8\x8cS\xe9b\x19'

decrypted_padded_data = aes.decrypt(encrypted_data)

decrypted_data = unpad(decrypted_padded_data, AES.block_size)
print(decrypted_data)
#keysauikoydasuicxs

YLCTF{130f4f18-8ec2-4124-b79a-e9fbbc15d88a}



Misc

[Round 2] Trace

图片尾藏东西,直接拿出来

或者zsteg提取

base64解码,得到rar压缩包

aapr爆破不了

用rarjohn+hashcat

复制后面那段,然后爆破6位数(这里先用了6位纯数字试试水,就有了)

 .\hashcat.exe -D 2 --force -m 13000 "hash.txt" -o "flag.txt" -a 3 ?d?d?d?d?d?d
 -D使用gpu跑,-m指定rar格式,?d数字占位符,其他的自己去了解

得到密码370950吗,解压得到一个斜图,ps拼接

对于不确定的,多尝试一下(7--1,0--o)

YLCTF{ccfe9e2c-391f-4055-a128-c06b65426c83}

[Round 2] 听~

常规路子走完,发现没东西,各种tool上一手

deepsound直接提取文件(不用密码)

爆破得到密码10117

stegsolve查看图片

发现red通道0、1,green通道2、3,blue通道1、4有隐写

lsb得到flag

YLCTF{1b690589-9f50-49ea-b0b0-da92c10c7e18}

[Round 2] 滴答滴

题目叙述,猜测是摩斯电码,主要思考在于怎么替换成电码形式

这里替换格式是

00FF--0

FF00--1

知道这个,解密就好了

我是把十六进制拿出来的

jio本:

with open("C:\\Users\\86139\\Desktop\\1.txt", 'r') as f:
    bin = ''
    flag = ''
    str = f.read()
    list = [str[i:i + 4] for i in range(0, len(str), 4)]
    for i in list:
        if i == '00FF':
            bin += '0'
        else:
            bin += '1'
    bin = [bin[i:i + 8] for i in range(0, len(bin), 8)]
    for i in bin:
        flag+=chr(int(i,2))
    print(flag)

YLCTF{7d160084-4dd5-4eec-bf1f-12f3ad8c8a6b}

Re

[Round 2] 三点几啦饮茶先

看一下代码,v9是key

输入tea算法中的v,encipher函数是加密逻辑,跟进函数

可以把代码拿出来,换换变量名,方便看

key和delta都有了,直接逆向代码(上网找个类似的)逆向分析中的密码学---tea_ctf逆向tea-CSDN博客

#include<stdio.h>
#define DELTA 289739961

void tea_decrypt(unsigned int* v, unsigned int* key) {
    unsigned int l = v[0], r = v[1], sum = 0;
    sum = DELTA * 40;
    for (unsigned int i = 0; i < 40; i++) {
        r -= (((l>>5) ^ (l*16)) + l) ^ (sum + key[(sum >> 11) & 3]);
        sum -= DELTA;
        l -= (((r >> 3) ^ (4*r)) + r) ^ (sum + key[sum & 3]);
    }
    v[0] = l;
    v[1] = r;
}

int main(int argc, char const *argv[])
{
    unsigned int key1[4]={4097,8194,12291,16388};//key
    unsigned int v1[2];
    v1[0] = 1913208188;
    v1[1] = -1240730499;

    tea_decrypt(v1,key1);
    printf("tea_decrypt:%u %u\n",v1[0],v1[1]);
    return 0;
}

YLCTF{0f88fef1-1c57-43a1-9cb8-a01a6eb22887}

posted @ 2024-10-23 21:17  ^cyi^  阅读(149)  评论(0编辑  收藏  举报