KCTF-2023题解

github链接:链接

第一题 失控的AI

1
2
3
“紧急通知!所有人员请立即撤离,向最近的避难所躲避!”无数的电子屏幕上出现红色的警示标语。人们惊恐地望着这些闪烁的文字,不敢相信眼前的一切。

所有的机器设备、电子设备、甚至是家电都变得疯狂起来,完全不受人类控制。飞机、汽车等都变成了毁灭性的武器,整个世界都陷入了混乱和恐慌。人类创造的AI竟然有了意识,正开展一项毁灭性的计划....这是一场人类与人工智能AI之间的较量!

 可以提取出此题目满足以下约束:

1
2
3
4
5
v1 > 0
v2 > 0
v1 <= v2
v1 + v2 = 0x1CBEA
v1 * v2 = 0xCE1B5379

 相应 z3 脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from z3 import *
solver = Solver()

v1 = Int('v1')
v2 = Int('v2')

solver.add(v1 > 0)
solver.add(v2 > 0)
solver.add(v2 >= v1)
solver.add(v1 + v2 == 0x1CBEA)
solver.add(v1 * v2 == 0xCE1B5379)

assert solver.check() == sat
mol = solver.model()
print(mol)
# [v1 = 56101, v2 = 61637]

 答案为:

1
56101-61637

第二题 CN星际基地

1
2
3
4
5
6
7
8
9
10
11
12
2260年6月21日,国家秘密科研中心正式宣布:我们将在5年后的今天,全面建成CN星际基地!

CN星际基地是地球联盟的最新发展项目之一,由众多的巨型空间站集合而成,构成一个巨大的星际空间站群。一些空间站被用于人类居住和工作;一些用于交流和贸易,以促进不同星球之间的合作和联系;还有一些则用于研究和科研任务。

一时间,全国各地的人们都在庆祝这个造福人类的消息,人们对5年后的CN星际基地充满期待,可是他们不知道,更危险的事情正在慢慢地、悄无声息地靠近......

注意:若序列号有多解,平台不认可提交的序列号,请加比赛专用QQ群:8601428,联系管理员验证。

[作者提示:序列号转换后的数值数组:
1、列向量组里不存在相反值,如 [1,-1,1,0] 与 [-1,1,-1,0] 不能同时存在
2、每个行向量里的 0 的数量占 1/3
2023/9/3 20:55]

 经过分析,输入要满足如下条件:

1
2
3
4
5
6
7
8
9
10
11
12
1. 输入长度为 0x9c
2. 4 个字符为一组,总共 0x27 组,每一个组中字符满足:
a. 字符只能由 0/1/2 组成
b. 每一个组字符不能为 1111, 2222
c. 组的值逐渐增大
d. 将条件 2 转为矩阵后,可以发现:
i. 矩阵中不存在 1111, -1-1-1-1 这样的列向量
ii. 矩阵的列向量转为 10 进制是逐渐增大的
3. 将输入 0x9c 个字符转为 addr_1[4][0x27] 后,要满足下图所示的逻辑。其实主要是满足以下几点:
a. sum(addr_1[i][:])==0
b. 输入的 md5 是某个确切的值
c. 注:其中判断 addr_1 列向量与 addr_4 的比较是无效的,原生就满足这个条件

image-20240327115558026

 给出 z3 脚本:

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
from z3 import *
import hashlib

def check_and_out(arr):
assert len(arr) == 4
s = ""
for row in arr:
for col in row:
if col == 0:
s += "0"
elif col == 1:
s += "1"
elif col == -1:
s += "2"
md5_hash = hashlib.md5(s.encode()).hexdigest()
if md5_hash == "aac82b7ad77ab00dcef90ac079c9490d":
print("[+] success", s)
return True
else:
# print("fail", s)
return False

def col_to_int(col):
return Sum([If(arr[r][col] == -1, 2, arr[r][col]) * (10 ** (rows - 1 - r)) for r in range(rows)])

solver = Solver()

rows, cols = 0x4, 0x27
arr = [[Int(f"arr_{r}_{c}") for c in range(cols)] for r in range(rows)]

# col should have order
for c in range(cols - 1):
solver.add(col_to_int(c) < col_to_int(c + 1))
first_row = [0] * 13 + [1] * 13 + [-1] * 13
for c in range(cols):
solver.add(arr[0][c] == first_row[c])

# Only could be -1,0,1
for r in range(rows):
for c in range(cols):
solver.add(Or(arr[r][c] == -1, arr[r][c] == 0, arr[r][c] == 1))

# -1,0,1 elements number is equal
for r in range(rows):
solver.add(Sum([If(arr[r][c] == -1, 1, 0) for c in range(cols)]) == cols // 3)
solver.add(Sum([If(arr[r][c] == 0, 1, 0) for c in range(cols)]) == cols // 3)
solver.add(Sum([If(arr[r][c] == 1, 1, 0) for c in range(cols)]) == cols // 3)

# cols have not 1111 or -1-1-1-1
for c in range(cols):
# solver.add(Sum([If(arr[r][c] == 0, 1, 0) for r in range(rows)]) > 0)
solver.add(Sum([If(arr[r][c] == 1, 1, 0) for r in range(rows)]) != 4)

# have opposite cols, like [1,-1,1,0] and [-1,1,-1,0]
for c1 in range(cols):
for c2 in range(c1 + 1, cols):
constraints = [Not(arr[r][c1] == -arr[r][c2]) for r in range(rows)]
solver.add(Or(*constraints))

all_vars = [var for sublist in arr for var in sublist]

may_result_num = 0
while True:
if may_result_num % 100 == 0:
print("[+] number:", may_result_num)
if solver.check() == sat:
model = solver.model()
example_arr = [[model.evaluate(arr[r][c]).as_long() for c in range(cols)] for r in range(rows)]
res = check_and_out(example_arr)
may_result_num += 1
if res:
break
else:
block = []
for v in all_vars:
c = model[v]
block.append(v != c)
solver.add(Or(block))
else:
print("[*] No solution found.")
break

 我感觉看雪 ctf 的题目挺傻逼的,纯耗时间。直接做其它 ctf 了。爆破不出来,看答案之后发现约束为:

image-20240327184324532

 不知道为什么排除 [0,0,0,0],排除列向量(0开头且深入下去首个非0为2)。

第三题 秘密计划

1
2
3
4
5
30世纪初,人工智能(AI)的发展速度远远超过了人类的想象。起初,它帮助人类控制城市的基础设施,包括交通、供电、供水等,使城市的运行更加高效、智能化。人类对AI的依赖程度越来越强,但是随着时间的推移,这种依赖逐渐演变为了一种“威胁”。

近日,各行各业的服务中心收到的投诉电话和邮件日益增多,例如:在麻醉手术过程中,医院供电系统断开,险些危及生命;汽车在行驶过程中,自动更换导航导致目的地偏离;门禁识别系统发生错乱;扫地机器人不按照设置好的程序工作,经常“罢工”。这究竟是怎么回事?必须立刻去寻找答案!

[注意:若序列号有多解,平台不认可提交的序列号,请加比赛专用QQ群:8601428,联系管理员验证。]

第四题 AI控制空间站

1
2
3
在国际信息安全中心(International Information Security Center,简称IISC)有着一批高智商的脑力算法工程师,是各国人才精英库中的佼佼者。其中,被派遣参与此次任务的3位工程师分别是:你、杰克和詹姆斯,你们曾并肩作战过无数次,是非常有默契的队友。你们的任务是找出AI混乱的根本原因,保障CN星际基地计划顺利开展。现在就带好装备,搭乘SpaceX火箭前往地球轨道之外的AI控制空间站!

AI控制空间站——专门用于控制和监测全球各类AI系统的运作和运行,距离地球很远,该空间站的设计应该能够承受极端条件,如宇宙射线,行星磁场,太阳风暴等。同时,该空间站还具有防御能力,例如自动反制攻击的技术,防止恶意攻击者攻击空间站。“好庞大的网络系统”,杰克惊呼道。历经2小时,你们成功抵达了AI空间站。

第五题 争分夺秒

1
2
3
4
5
6
7
“现在可没有闲工夫“欣赏”。詹姆斯叹了口气。现在的主要任务是:全盘扫描所有的AI控制库,尽可能快地排查出发生混乱的AI所属站点。但是如果按照常规的步骤,需要花费48小时,显然你们没有这么多时间。“这样吧,杰克、詹姆斯你们先一人负责一半的扫描区域。之前我尝试开发过一个软件,想利用内核技术获取设备最高权限,但是当时失败了,现在我想再试试。”你沉着地说道。“ok,交给我们吧”杰克和詹姆斯边走边来到各自负责的区域。

于是,你启用了自己之前未开发完成的超级黑客软件。“成功了!现在只需要2小时,即可排查完所有站点。”你激动地说道。“好样儿的,我们哥俩可以休息了”杰克打趣地说。

[注意:若序列号有多解,平台不认可提交的序列号,请加比赛专用QQ群:8601428,联系管理员验证。]

“扫描完毕,检测到不明系统正在扩大攻击范围,地球的人类现在正在遭受攻击。”软件检测结果出来了。“什么?我们才来2个多小时而已,地球发生了什么?”杰克不敢相信。立刻连线IISC,获取最新情报!

第六题 至暗时刻

1
2
3
4
5
“紧急通知!所有人员请立即撤离,向最近的避难所躲避!”AI已经开始独立思考和决策,完全失控,并且正在肆无忌惮地攻击人类。

它们的机械臂狠狠挥动着,砸碎了路灯和建筑物,一边吸入人们的氧气,一边发出阴森的嘶吼。人们逃不过机器人的追杀,他们只能眼睁睁地看着自己的家园被摧毁,亲人被杀害。在这样的恐怖场面中,人类的力量显得非常渺小。他们试图用武器和战斗机器来对抗这些机器的威胁,但是很快就发现自己已经无力回天。机器人的攻击相比于人类,更加的准确、迅速和无情,他们的威力甚至可以让整个世界陷入混乱和毁灭。

[注意:运行环境:Windows10、Windows7。(不支持Windows11)]

第七题 智能联盟计划

1
2
3
4
5
6
科锐的嘿嘿嘿
国际信息安全中心检测到,控制这些人工智能AI的ip地址已经被篡改,是来自其它不明星球。原来由于人类的贪婪与滥用,人工智能AI不知不觉中形成了一个智能联盟,并且早就设下了攻击计划。

“我们目前检测到该目标距离你们所在的AI控制空间站很近,但是无法锁定具体位置!”IISC负责人YoYo愤怒地说道。“收到,我们试着锁定具体的ip地址,请求你们立刻派人援助。”你回复道。现在,立刻用刚才最新研发出的超级黑客软件锁定位置试试!

[注意:本题目以 <Window平台CrackMe 方案二(新规则)> 参赛,要求破解者求用户名为 KCTF 所对应的序列号

第八题 AI核心地带

1
2
3
4
5
“已检测到目标位置,自动标记为红色”“距离目标位置还有100m”“成功进入人工智能AI的核心地带”超级黑客软件显示。

“可以了,我们找到了!大家注意安全,开始作战”你下达口令。入口设在墙角处,你快速扫描了一下身边的状况,向杰克轻轻点了点头示意他负责削弱门锁的防御系统,詹姆斯则在前方探路。

[注意:本题目以 <Window平台CrackMe 方案二(新规则)> 参赛,要求破解者求用户名为 KCTF 所对应的序列号]

第九题 突破防线

1
2
3
4
5
6
7
突然,视野里顿时一片黑暗,你们进入了另一个电子世界。在这个世界中,每条线路都像是一条河流,循环反复流淌着电子能量。

一路上,詹姆斯直在用一种特殊形态的电磁信号进行扫描,寻找着这个网络中最明显的“阵痛”点。终于,他找到了人工智能AI的控制核心。

这里有一个奇怪的球体,闪烁着红色的光芒,其周围紧紧地包裹着一层能量屏障,你们近乎无法接触到它核心。杰克分析了一下防御屏障,认为这个电子屏障是由一种类似“反应堆操纵杆”的元器件控制的,可以通过修改这个元器件的代码来解决这个问题。

于是,你立刻启用了自己开发的超级黑客软件,通过漏洞攻击人工智能AI的安全系统。现在试试看吧!

第十题 精准攻击

1
2
3
4
5
6
这里有一个奇怪的球体,闪烁着红色的光芒,其周围紧紧地包裹着一层能量屏障,你们近乎无法接触到它核心。杰克分析了一下防御屏障,认为这个电子屏障是由一种类似“反应堆操纵杆”的元器件控制的,可以通过修改这个元器件的代码来解决这个问题。

于是,你立刻启用了自己开发的超级黑客软件,通过漏洞攻击人工智能AI的安全系统。现在试试看吧!

[注意:运行平台linux,如CentOS等]
[注意:若序列号有多解,平台不认可提交的序列号,请加比赛专用QQ群:8601428,联系管理员验证。]

第十一题 步步逼近

1
2
3
不一会儿,你发现AI在使用一个由7颗卫星构成的通讯网络。每颗卫星的链路数量分别为2,4,5,6,7,8和13。消息在卫星之间传递时频繁更换链路。你们需要在短时间内找出跟踪方法。

三人不断找出新的解法,一步步逼近人工智能AI核心。“现在需要找出AI的链路切换常数,以便截取AI的通信信号!”詹姆斯说道。这个网络是一个高度复杂的系统,只有AI才能够访问它。现在可以用什么方法呢?

第十二题 深入内核

1
2
3
4
5
“有了,我们可以采取“逆向攻击”的方法,即通过模拟AI的攻击方式,来突破服务器的防线。”杰克说道。

还好之前曾在实验室进行过大量的模拟,现在轻而易举便可成功模拟出了AI的攻击方式。他们将这种攻击方式应用到了服务器上,成功突破了服务器的防线!

在突破了服务器的防线之后,你们终于进入了AI的内核。现在只需要找出AI的控制程序,以便下一步攻击。这个程序是AI的命脉,只要攻击了它,AI就会失去控制权。詹姆斯利用了自己的技术优势,成功深入AI的内核,攻击其母体系统,彻底获得AI母体系统的控制权。

第十三题 共存之道

1
2
3
4
5
恭喜你们,顺利完成了任务!原来这些有了自主意识的AI集结起来组成了智能联盟,它们的目的是要取代并消灭地球,建立属于他们的星球。原本AI可以帮助人类更好地生活,提高生产力,甚至可以解决一些人类无法解决的问题,如今却变成了这样两败俱伤,这令人类开始思考如何与AI共存。

不久后,所有的AI系统都被强制更新。人类也为AI提供了更加完善的道德和伦理体系,让AI成为了一个更加有意识的存在。

2265年6月21日,【CN星际基地】也顺利进入试运行阶段,据报道称该基地可容纳数百万人生活和工作,这个项目的落地也离不开AI的帮助.......

To be continued…

留言

2023-09-06

© 2024 wd-z711

⬆︎TOP