xyctf2025复现


签个到吧

题目描述:

1
最小的,具有图灵完备性的语言是?

下载附件

1
+++++++++++++++++[<++++++>-+-+-+-]<[-]>++++++++++++[<+++++++++>-+-+-+-]<[-]>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++[<+>-+-+-+-]<[-]>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++[<+>-+-+-+-]<[-]>+++++++++++++++++++++++++++++++++++++++++[<+++>-+-+-+-]<[-]>+++++++++++++++++++++++++++++[<+++>-+-+-+-]<[-]>+++++++++++++++++[<+++>-+-+-+-]<[-]>++++++++++++[<+++++++++>-+-+-+-]<[-]>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++[<+>-+-+-+-]<[-]>++++++++[<++++++>-+-+-+-]<[-]>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++[<+>-+-+-+-]<[-]>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++[<+>-+-+-+-]<[-]>+++++++++++++++++++[<+++++>-+-+-+-]<[-]>+++++++++++++++++++++++++++++[<++++>-+-+-+-]<[-]>++++++++[<++++++>-+-+-+-]<[-]>+++++++++++++++++++[<+++++>-+-+-+-]<[-]>+++++++++++[<++++++++>-+-+-+-]<[-]>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++[<+>-+-+-+-]<[-]>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++[<+>-+-+-+-]<[-]>++++++++++++[<+++++++>-+-+-+-]<[-]>++++++++++[<+++++++>-+-+-+-]<[-]>+++++++++++++++++++[<+++++>-+-+-+-]<[-]>++++++++++[<+++++>-+-+-+-]<[-]>++++++++[<++++++>-+-+-+-]<[-]>++++++++++[<+++++>-+-+-+-]<[-]>+++++++++++++++++++++++++++++++++++++++++++++++++++++[<+>-+-+-+-]<[-]>+++++++++++++++++++[<+++++>-+-+-+-]<[-]>+++++++++++++++++++++++[<+++>-+-+-+-]<[-]>+++++++++++[<++++++++++>-+-+-+-]<[-]>+++++++++++++++++++++++++++++++++++++++++++++++++++++[<++>-+-+-+-]<[-]>++++++++[<++++++>-+-+-+-]<[-]>+++++++++++[<+++++>-+-+-+-]<[-]>+++++++++++++++++++[<+++++>-+-+-+-]<[-]>+++++++[<+++++++>-+-+-+-]<[-]>+++++++++++++++++++++++++++++[<++++>-+-+-+-]<[-]>+++++++++++[<+++>-+-+-+-]<[-]>+++++++++++++++++++++++++[<+++++>-+-+-+-]<[-]

brainfuck编码,但是直接解密不显示

deepseek分析

将全部的<[替换为<.[即可

braibfuck解密

最后flag为

1
flag{W3lC0me_t0_XYCTF_2025_Enj07_1t!}

XGCTF

题目描述:

1
2024年CTFshow举办了一场名为“西瓜杯”的比赛(XGCTF)。其中LamentXU在出题的时候,从某场比赛拉了道原题下来改了改,结果传文件的时候传错了传成原题了。因为这件事LamentXU的损友dragonkeep在他之前的博客上的原题wp上加了一段flag来嘲笑LamentXU。请你找到XGCTF中唯一由LamentXU出的题,并找出这题对应的原题,接着找到dragonkeep师傅的博客,并从博客上讲解该题的博文中找到flag。(hint:dragonkeep师傅因为比较穷买不起域名,因此他博客的域名在dragonkeep的基础上多了个字母)

登录ctfshow官网,找到西瓜杯的官方wp
找到出题人出的题,名为 easy_polluted

百度搜索ctf dragonkeep

找到dragonkeep师傅博客

http://dragonkeeep.top/category/CISCN%E5%8D%8E%E4%B8%9C%E5%8D%97WEB-Polluted/index.html

查看源码发现base编码,解密得到

1
flag{1t_I3_t3E_s@Me_ChAl1eNge_aT_a1L_P1e@se_fOrg1ve_Me}

会飞的雷克萨斯

题目描述:

1
2025年1月30日W1ndys上网冲浪时,收到了舍友发来的聊天记录,聊天记录显示,一小孩放鞭炮引爆地面,请定位爆炸点的具体位置,该题解出需要通过正常的osint题目做题思路

下载附件

百度搜索小孩放鞭炮炸飞雷克萨斯

1·30四川男孩放炮炸翻多辆豪车事件_百度百科

四川省内江市资中县水南镇春岚北路

图中有小东十七店,高德搜索位置

最后flag为

1
flag{四川内江市资中县水南镇春岚北路中铁城市中心内}

曼波曼波曼波

题目描述:

1
dnbody突然发现了一个东西随后开始了他的奇思妙想。注:此题flag格式为XYCTF{}

下载附件

扫描二维码是假flag

查看smn.txt

反转的base编码,直接赛博厨子一把梭

foremost分离

查看secret.txt

1
2
密码是什么来着,有点记不清了,呜呜呜呜
好像是什么比赛名字加年份

压缩包密码为XYCTF2025,解压压缩包,一眼双图盲水印,b神工具直接秒了

最后flag为

1
XYCTF{easy_yin_xie_dfbfuj877}

喜欢就说出来

看博客

题1 | 郑心怡天天开心

Greedymen

题目描述:

1
Isn't it ironic? Greed isn't limited. Freedom is a limited resource.

nc连接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
There are 3 levels, level 1/2/3 has number 1 to 50/100/200 on board to choose from
Each number you choose, you get the corresponding points
However, your opponent will choose all the factors of the number you choose, and get the points of each factor
You can not choose numbers that are already assigned to a player
You are only allow to choose the number if it has at least one factor not choosen
If you can't choose anymore, the rest of the board goes to your opponent
To make the challenge harder, there is a counter that starts with19/37/76inlevel1/2/3, eachtime you choose a number, the counter decreases by1
When it reaches 0, and the game will end, and the unassigned numbers will goto your opponent
The challenge isalways solvable
Player with highest score wins

#这里翻译了一下
--->
共有 3 个关卡,1/2/3 关的棋盘上有 1 到 50/100/200 的数字供您选择
您选择的每个数字都会获得相应的分数
但是,您的对手会选择您所选数字的所有因素,并获得每个因素的分数
您不能选择已经分配给某位玩家的数字
只有在数字至少有一个因素未被选择的情况下,您才可以选择该数字
如果您无法再选择、 棋盘的其余部分将归对手所有
为了增加挑战的难度,在 1/2/3 级中有一个从 19/37/76 开始的计数器,每选择一个数字,计数器就会减少 1
当计数器为 0 时,游戏将结束,未分配的数字将归对手所有
挑战总是可以解决的
得分最高的玩家获胜

exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
from pwn import *
import math

def get_factors(num):
factors = {1}
for i in range(2, int(math.sqrt(num)) + 1):
if num % i == 0:
factors.add(i)
factors.add(num // i)
return factors

def calculate_opponent_score(choice, assigned_numbers):
factors = get_factors(choice)
opponent_score = 0
for factor in factors:
if factor not in assigned_numbers and factor != choice:
opponent_score += factor
return opponent_score

def can_choose(num, assigned_numbers):
factors = get_factors(num)
for factor in factors:
if factor not in assigned_numbers:
return True
return False

def generate_priority_list(level):
if level == 1:
numbers = list(range(1, 51))
elif level == 2:
numbers = list(range(1, 101))
else:
numbers = list(range(1, 201))

prime_numbers = [num for num in numbers if is_prime(num)]
composite_numbers = [num for num in numbers if not is_prime(num)]

return prime_numbers + composite_numbers

def is_prime(num):
if num <= 1:
return False
for i in range(2, int(math.sqrt(num)) + 1):
if num % i == 0:
return False
return True

def generate_best_choices(level):
priority_list = generate_priority_list(level)
if level == 1:
max_num = 50
unassigned_numbers = list(range(1, 51))
elif level == 2:
max_num = 100
unassigned_numbers = list(range(1, 101))
else:
max_num = 200
unassigned_numbers = list(range(1, 201))
available_numbers = set(unassigned_numbers)
assigned_numbers = set()
choices = []
counter = 19 if level == 1 else (37 if level == 2 else 76)
while counter > 0 and available_numbers:
best_choice = None
max_gain = -float('inf')
for num in priority_list:
if num in available_numbers and can_choose(num, assigned_numbers):
opponent_score = calculate_opponent_score(num, assigned_numbers)
gain = num - opponent_score
if gain > max_gain:
max_gain = gain
best_choice = num
if best_choice is None:
break
choices.append(best_choice)
available_numbers.remove(best_choice)
assigned_numbers.add(best_choice)
factors = get_factors(best_choice)
for factor in factors:
if factor != best_choice:
assigned_numbers.add(factor)
counter -= 1
return choices

def generate_all_optimal_solutions():
optimal_solutions = []
for level in range(1, 4):
best_choices = generate_best_choices(level)
optimal_solutions.append(best_choices)
return optimal_solutions

optimal_solutions = generate_all_optimal_solutions()

p = remote('gz.imxbt.cn', 20275)

p.recvuntil(b'3.Quit\n')
p.send(b'1\n')
for i in range(3):
for j in range(len(optimal_solutions[i])):
p.recvuntil(b'Choose a Number:')
p.send(str(optimal_solutions[i][j]).encode() + b'\n')
p.interactive()

运行得到flag

最后flag为

1
flag{Greed, is......key of the life.}

MADer也要当CTFer

题目描述:

1
你知道PRTShark是什么意思吗,P是位置,R是旋转,T是不透明度,S是缩放,而hark代表这道题是hard to hack吧

hint:

1
MKV文件类似一种容器,它可以存放视频,各种独立音轨音频,以及字幕文件等,小丸工具箱可以抽取MKV

下载附件

提取字幕

使用小丸工具箱提取

提取字幕里的十六进制

hex转文件,赛博厨子一把梭

根据题⽬描述,”P是位置,R是旋转,T是不透明度,S是缩放”这是AE的快捷键,该⽂件其实是
aep格式的⼯程⽂件,修改后缀并AE打开,调整参数得到flag

最后flag为

1
flag{l_re@IIy_w@nn@_2_Ie@rn_AE}

文章作者: yiqing
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 yiqing !
  目录