NahamCon2022
NahamCon CTF 2022 中 XORROX、Unimod、Baby RSA Quiz 和 Ostrich 的题解。
今天玩了玩NahamCon CTF 2022,凌晨三点开始比赛。当然,我肯定是睡觉起床了再打。
起床之后队友把热身题全扫了,我也没啥题可以做了(菜鸡一个。后面找了以下难度不大的crypto写。以下是writeup。后面我还会写一下别人的writeup,因为有些题没写出来。
XORROX
1 |
|
可以看到是一个简单的多次异或。异或是可逆的,而且我们的key元素中的第一个也就是key[0]是不会被修改的。所以我们只需要再跑一下这个循环,把key跑出来就行了。
1 |
|
Unimod
这题有点蛋疼。因为直接看数据文件格式有点不对。
1 |
|
注释部分是我测试的部分。原题目是没有的。
以下是原题目的十六进制数据。可以看到很明显的三个字节一个分组。但是从代码上看,我们的到的数据应该是两个字节一个分组。
1 |
|
所以有了注释中的三条输出语句:
1 |
|
可以看到,这个数据经过编码成了三个字节。所以我们直接读文件,然后用三个字节分组,使用ord函数来解码,才能得到正确的值。
这里其实有个k,但是影响不大。这里0xFFFD其实比我们ASCII码的范围大了太多。基本上不会出现取的k刚好在0xFFFD的边界上。所以直接解就行了,如果不行那也就再加个0xFFFD进行处理就行。
1 |
|
Baby RSA Quiz
这题没有给文件而是以ssh的方式进行的。
一共三小题,第一小题给的是个小n,直接分解就行了。
1 |
|
这个直接上网站一分解就行。得到p,q求解d,然后算m。这里答案是整型的,但其实也是能转成字符串的。
1 |
|
这里可以看到加密指数e很小,所以我们只需要开方求解就行了。
1 |
|
这里我打印了数字也打印了字符串,是从我之前的代码上改的。
1 |
|
这里给出了两个素数生成的方法。可以看到这两个素数应该是比较接近的。
所以直接用yafu尝试进行分解。yafu比较适合这种情况。
1 |
|
可以看到很快就出答案了。这样p和q就分解出来了。后面就是单纯的rsa运算了。
后面还做了一道隐写
Ostrich
一共给了三个文件。
一张图片,一个算法,一个结果。
应该对算法进行逆向就行了。
1 |
|
最后保存的是一个APNG文件,这是个动图文件,但这里不会动就是了。
大致流程先看了一遍。我们先把文件提出来,这里的APNG动图也是多幅图片在一起构成的。每张图片里面嵌入了一个字节。
1 |
|
一共提取了38张图片。
来讲一下嵌入的流程。
1 |
|
最主要的部分在这里。
这里要找一个B通道值不为0的点。原始图像中找一个B通道不为0的点,基本上所有的点都不可能B通道为0,所以其实就是随机的在里面找一个点。
1 |
|
在这里面,又把我们的值改成了0。这就让这个点很好找了。。
所以我们只需要找到这个点,读取这个点的像素值,然后和原始图像的这个点做运算就可以得到flag。
只要和原图比较多了哪一个b通道值为0 的点就行。
1 |
|
以下是后面添加的。(2022/05/03)
Steam Locomotive
这题很好玩。
用ssh链接目标服务器之后。执行的是SL这个命令,而且此时我们会被阻塞无法操作。
1 |
|
火车跑完,连接也断开了。这是一道简单题,但是我真的不会做。后面看别人的writeup才知道。原来ssh连接可以直接带命令。
1 |
|
这里我们连接的时候直接带上一个ls命令。结果我们可以看到有个flag文件。
1 |
|
这样我们就能在ssh阻塞的情况下执行其他命令。算是学到了一些小知识。我觉得可以出在我们学校的新生赛里面嘿嘿。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!