
2019年1月27日,举办了SITIS CTF活动-针对学校和大学生的信息安全竞赛。 大约80名年轻专家和1名海豹参加了比赛。 游戏在Jet信息系统办公室举行;年轻的SITIS团队是任务和技术平台的组织者。
周大福
事件格式是基于任务的CTF(危险),其中玩家可以解决各种难度级别的任务(任务)。 答案可以是字符集或任意短语。 对于每个正确答案(标志捕获),参与者都会获得一定数量的分数。 仅在先前任务决定后,才可以访问部分任务。
CTF游戏的参与者设法解决了几乎所有任务,但其中两个没有屈服:最有可能受到疲劳的影响-年轻的黑客和黑客从早到晚“破坏”了任务和大脑。
任务
竞价排名
链条 (200分)
为参与者提供了一组像素,专门转换为十六进制,其中包括一串关键像素。 通过将十六进制转换为图片,可以获得带有标志的图像。
绘画 (200分)
为参与者提供了一个档案库,其中包含约1600张单色图像,描绘了75个字节的数字。 获取标志的方法是使用零作为分隔符在图片中添加数字,并将结果列表转换为字符串表示形式。
科托罗娃 (250分)
请参阅“ Vraytapy”部分。
音乐 (300分)
请参阅“ Vraytapy”部分。
倒车
拉兹明卡 (75分)
参与者需要初步的反转技能,密码作为char变量存储在主类中。
我的创造! (250分)
请参阅“ Vraytapy”部分。
密码
奇异梦 (100分)
请参阅“ Vraytapy”部分。
嗯嗯嗯 (150分)
请参阅“ Vraytapy”部分。
欢喜
一个 (25分)
参与者需要在带有盖章的gif框架中的一个框架上找到小字体的标志。
雪花 (75分)
为参与者提供了带有模糊JavaScript代码的html文件。 必须从缓慢落在页面上的符号中做出一个标记。
在我们中间标记 (100分)
照片附在作业上。

首先,每个人都急着在图像中寻找一个标志。 反复浏览并确保不存在该标志,值得返回到任务的描述和标题,并再次仔细阅读它们。 事实是,在比赛本身,举行比赛的房间的门上,贴有带有QR码的不寻常贴纸。

收集了所有部分后,就有可能得到短语HRGRH {9I3371M95_7i4e3o3i}。 该标志显然是在这里跟踪的,但已加密。 该任务没有给出很多要点,因此密码不应该复杂是合乎逻辑的。 通过搜索主要选项,可以得出结论,Atbash在这里。 SITIS标志{9R3371N95_7r4v3l3r}。
斯蒂格
错误或功能? (50分)
任务后附加了一个文本文档,乍一看只有两行。 但是,仔细查看并突出显示文本,可以在39行上看到很多空格和制表符。 那些已经遇到过这种情况的人应该毫不费力地获得一个标志。
诗歌 (75分)
为参与者提供了电影“模仿游戏”中的相框图片。 有必要找到原始图片并进行比较,然后从不同的像素中制作出一张新图片,并以拜伦(他的姓氏是旗帜)的诗句作为参考。
故事
欢迎 (50分)
机器人无处不在 (100分)
是时候换气了 (105分)
帮助永远都是多余的 (125分)
您需要玩一个雄鹿 (150分)
第一次现场测试 (175分)
有趣开始p1 (200分)
有趣开始p2 (205分)
最终老板 (300分)
在该区块中,参与者必须解散一些相关任务。
关键是要为参与者提供包含各种文件的档案,但是他们需要在元信息中找到坐标。 提示说作者具有地形克丁顿主义,因此您需要交换纬度和经度,并以湖名的形式获取一个标志。
在第二项任务中,有必要在文件系统中找到带有标志的文件。 还有一个链接可以打开对3个任务的访问。 接下来,必须在Web存档的已保存页面上找到该标志。 在以下任务中,参与者必须从Youtube上的视频中找出一个受欢迎的黑客(他的名字和姓氏是旗帜),在某个“黑客”论坛上找到他的帐户,那里有一个旗帜和关于黑客入侵网站的提示。 然后有必要在CTfOS网站上进行攻击(在cookie md5中找到哈希密码,并使用该服务获取原始密码,标记为admin +密码对)。
接下来,您必须通过ssh进行连接,查看档案,通过sftp下载,获取密码,然后找出里面的档案而不是里面的图片,并获得一个标志。 最后,端口号为“ 65530”,必须选择一个密码(rockyou词典),然后格式化系统并向组织者提供证据。
炎性
- INSTA(100分)
为了取得成功,您必须在Instagram帖子中附上CTF照片和主题主题标签。 - 迷你民意测验(125分)
作为任务的一部分,参与者通过了一次小型调查。
Vraytapy
以下是CTF参与者对有趣任务的一些分析。
科托罗娃

科托罗娃,强调第三个“ o”。 300点中有250点的任务。 给玩家一张照片(见上)和一个奇怪的文字,由单词“ Miu”,“ Meow”,“ FRR”和“ Face”组成。

通过对图片的视觉分析(以及过去的好奇心),我们了解到源文本不过是带有替换运算符的COW语言。 进行以下替换后,您会收到“牛”消息:Miu => MOo,Meow => MoO,RDF => OOO,Lik => Moo。 通过在线解释器运行结果代码,并获得令人垂涎的令牌:

一个奇怪的梦...
奇怪的是,但是在一个寒冷的一月早晨醒来之后,其中一位组织者的脑子里真正想到了这一任务。 任务说明:
我在这里梦到一个任务,检查可解性pzh:3
从名称和描述可以很容易地猜到该引用是Dmitry Ivanovich,即Mendeleev。 现在让我们看看文件中包含的内容:
0x53 0x49 0x54 0x49 0x53 0x7b 0x6d 0x65 Mx3c 0x65 0x6c 0x65 0x65 Mx17 0x5f 0x65 Mx21 Mx27 0x5f Mx4b Mxf Mx39 Mx3a 0x6d 0x65 Mx7 Mx75 0x7d
十六进制,但在某些地方带有奇怪的“ M”前缀。
我们将HEX转换为ASCII,并乍看之下会立即发现一个损坏的标志:

仅将带有前缀“ M”的十六进制转换为十进制系统,我们得到以下序列:
60 23 33 39 75 15 57 58 7 117
我们记得描述。

将ASCIInut HEX与Mendeleev结合使用,并获得标志。
乐曲
我们考虑了很长时间如何将文本转换为笔记,最终实现了这个想法:

首先,决定使用ord()将文本转换为数字表示形式
“ awsm_msic”
首先有意留一个空格,以便最后的位不会破坏最后的字符。
ord(): [97, 119, 115, 109, 95, 109, 115, 105, 99, 32]
然后将其转换为字节:
>>bin(): ['01100001', '01110111', '01110011', '01101101', '01011111', '01101101', '01110011', '01101001', '01100011', '00100000']
串联:
concatenate:01100001011101110111001101101101010111110110110101110011011010010110001100100000
将结果文本分成三个字符(三元组)。 由于可以在000到111的范围内对8个数字进行编码,因此我们将使用八音度C5和C6的一组音符,包括8个音符:
['011', '000', '010', '111', '011', …] ["C5","D5","E5","F5","G5","A5","B5","C6"]
剩下的只是一点点,我们根据注释的索引将三元组转换回十进制系统并组成一个新列表:
['F5', 'C5', 'E5', 'C6', 'F5', 'A5', 'B5', 'F5', 'F5', 'F5', 'E5', 'A5', 'C6', 'A5', 'A5', 'A5', 'F5', 'G5', 'B5', 'B5', 'G5', 'A5', 'G5', 'F5', 'D5', 'C5']
我们编写一个MIDI文件,如果您愿意,您可以使用任何乐器给音符发出声音。

反向250
首先,我们反汇编程序(使用IDA),将其转换为C并查找可疑行:

我们可以得出结论,v39是一个标志,表明处于假状态将为我们提供我们要查找的字符串。
我们看一下标志更改的位置:

看这段代码,很难确定我们必须对哪些变量进行更改,以使标志递减。 通过双击Buffer变量,我们进入查看程序堆栈的窗口。 我们必须了解Buffer是一个字符串(因为我们可以在程序中输入任何内容),这意味着我们将设置此大小,以便所有var_xxx变量都在其中:

阅读代码变得更加容易:

现在考虑改变字符串字符的代码块。

我们分析:
- v38是符号变量值的总和(根据条件1231)。
- 7行元素(Buffer_6)移位7位,即 无法逆转换(无论此处转换了多少,结果均为0)。
- 具有变量v35,v41,v34的循环用于转移注意力(将一行的值复制到另一行以保存从二进制到十六进制的正确转换,因为我们更改了原始行)。
- 前三个字符的循环是2的简单乘法。
- 第四到第六有点难。 有必要求解该方程式(对于第四个字符,它看起来像这样:(x * 2)^ 57 = 95)。 尽管XOR是不可逆的操作,但使用枚举选择值非常有可能,即使具有初步技能,也可以在几秒钟内完成。
- 更改结束后,我们返回条件框,为其余元素绘制简单方程式。
我们有(x-未知,0-已知):000000x00000x。 值的总和=1231。从该数字中减去已知数字,得出未知数字的总和=164。因此,我们取两个总和为164的字符。根据第一个单词的含义,将其设为'R'和'R'。

输入密钥后,我们将得到所需的短语。
嗯嗯
打开任务时,我们得到两个文件:data.txt和Hmmmm.png:


显然,文本文件中的第一行是某种编码。 确实,这是普通的Base64,尽管最后没有特有的“ =”符号。
解码后,我们发现数字可疑地类似于度数:

在这一点上,已经可以猜到我们正在谈论某个晶格及其倾斜角度。 但是模具本身在哪里? 当然,我们仍然有一个二进制数集,其中绝大多数是1,只有8个零。
检验假设非常简单。 原子说,我们有256个字符。 就像照片中的表格一样,由此我们也可以猜出格子是正方形的。

最好的方法可能是使用Excel绘制网格轮廓。 因此,让我们开始吧。
实际上,这里是:

假设这是晶格相对于0度的给定位置,并非徒然。 然后,使用Excel或Photoshop中的操作,从窗口中输入数字:

这些可以是什么样的数字? 十六进制...十六进制,当然!

万岁,我们处在正确的轨道上,仍然需要转动网格并写出剩余数字:

事实证明,所需序列位于蓝色单元格中,即:
53 49 54 49 53 7b 43 61 72 64 61 6e 6f 5f 69 73 5f 70 72 6f 75 64 5f 6f 66 5f 79 6f 75 5f 21 7d

结果是:SITIS { 您的 Cardano_is_proud_of!}
是的,是的,这只是卡尔达诺在16世纪提出的格子。 最简单的密码算法之一。
尽管如此,尽管任务看起来很简单和明显,但是尽管有这样的提示,但只有一支团队能够解决它-“ 10x”。


会员
参赛者既是经验丰富的CTF初学者,也是初学者。
MLPWN第一名:
我的团队喜欢它。 至于任务,对于我们来说,作为一支经验丰富的团队来解决它们并不是很困难,值得注意的是,这些任务是为初学者设计的,他们所遇到的并不是艰巨任务的想法,是多少有趣的信息,这很酷。 对于组织而言,一切都处于最高水平,老实说,并不总是在学校中心找到。 祝SITIS团队组织以下SITIS CTF一切顺利!
2处,10倍
第三名,Inview:
这是我第一次访问CTF,因为在那之前我只参加了圣彼得堡的CTF。 任务是非常有趣且困难的,但是由于其原因通常很简单,所以唯一的问题是互联网的崩溃。 我很想明年来,希望SITIS CTF只会有所改善。 我希望组织者在比赛和此类活动的组织中都取得成功。

获胜者是MLPWN团队-My Little Pony(Pwnie)。

在参加者中有相当多的女孩=)

战斗很激烈,有时需要组织者的帮助:

主办单位
该活动由年轻的SITIS团队组织。 CTF的合作伙伴是Jet Infosystems( SITIS CTF的一般合作伙伴),IB集团,Elefus,BCS和FSBI研究所Voskhod。

对于那些来找海豹的人。 他在获胜团队中被发现。 我认为这是一个迹象。
LV:说说你的吉祥物-印章=)
锂:实际上,这并不是我们的吉祥物。c:我们是最近才组建这支球队的,在此之前(几乎所有)所有人都属于不同的球队,或者根本没有一支球队。 西奥多是海豹突击队的成员,海豹的吉祥物是海豹。 西奥多拖了他。 我们实际上希望他带来他的小马,这是他在小天狼星获得的Pwnie奖)

海豹说:不要成为海豹,打CTF,提高技能!
该出版物保留了CTF成员的标点符号和拼写。