IDF-CTF训练营 牛刀小试 解题报告

#被改错的密码

从前有一个熊孩子入侵了一个网站的数据库,找到了管理员密码,手一抖在数据库中修改了一下,现在的密码变成了 cca9cc444e64c8116a30la00559c042b4,那个熊孩子其实就是我!肿么办求解!在线等,挺急的。。

##解答
md5加密
整个字符串长度为33比正常的md5多1位
md5中怎么可能出现一个l嘛,删掉解密即可

解密可使用cmd5

#啥?

[图片]谁能告诉我这是啥?答案又是啥。。

##解答
CTF典型题型中的STEGA(Steganography),会将flag隐藏到各种有码无码高清不高清的图片和音像制品中。

sudo apt-get install ghex
ghex download.jpg

在接近文件结尾处发现答案

image

#ASCII码而已

\u5927\u5bb6\u597d\uff0c\u6211\u662f\u0040\u65e0\u6240\u4e0d\u80fd\u7684\u9b42\u5927\u4eba\uff01\u8bdd\u8bf4\u5fae\u535a\u7c89\u4e1d\u8fc7\u767e\u771f\u7684\u597d\u96be\u3002\u3002\u0077\u0063\u0074\u0066\u007b\u006d\u006f\u0072\u0065\u006d\u006f\u0072\u0065\u005f\u0077\u0065\u0069\u0062\u006f\u005f\u0066\u0061\u006e\u0073\u007d

##解答
上面一串字符串是unicode
想办法让他变为正常显示即可

decode 就是将其他编码转换为python内部的unicode
encode 就是将python内部的unicode转换成其他编码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
print sys.getdefaultencoding()
s = '\u5927\u5bb6\u597d\uff0c\u6211\u662f\u0040\u65e0\u6240\u4e0d\u80fd\u7684\u9b42\u5927\u4eba\uff01\u8bdd\u8bf4\u5fae\u535a\u7c89\u4e1d\u8fc7\u767e\u771f\u7684\u597d\u96be\u3002\u3002\u0077\u0063\u0074\u0066\u007b\u006d\u006f\u0072\u0065\u006d\u006f\u0072\u0065\u005f\u0077\u0065\u0069\u0062\u006f\u005f\u0066\u0061\u006e\u0073\u007d'
s = s.decode('unicode_escape')
print type(s)
s = s.encode("utf-8")
print type(s)
print s

#摩斯密码

嘀嗒嘀嗒嘀嗒嘀嗒 时针它不停在转动

– — .-. … .

嘀嗒嘀嗒嘀嗒嘀嗒 小雨它拍打着水花

-.-. — -.. .

PS:答案格式wctf{你所知道的}

##解答
标题已经说明了解题方法
早期年代无线电常用的编码方式

- 一般认为是长信号
. 一般认为是短信号

如果灯光是按照“短亮 暗 短亮 暗 短亮 暗 长亮 暗 长亮 暗 长亮 暗 短亮 暗 短亮 暗 短亮”这个规律来显示的话那么它就意味是求救信号SOS。

映射关系
A ·-
B -···
C -·-·
D -··
E ·
F ··-·
G –·
H ····
I ··
J ·—
K -·-
L ·-··
M –
N -·
O —
P ·–·
Q –·-
R ·-·
S ···
T -
U ··-
V ···-
W ·–
X -··-
Y -·–
Z –··

#聪明的小羊

一只小羊跳过了栅栏,两只小样跳过了栅栏,一坨小羊跳过了栅栏…

tn c0afsiwal kes,hwit1r g,npt ttessfu}ua u hmqik e {m, n huiouosarwCniibecesnren.

##解答
其实我的第一反应是凯撒密码,然而这一般是不可能有特殊符号的。

看到栅栏。。。栅栏。。。栅栏。。。,所以想到用到的是栅栏密码。

一般来说,解密过程是先把空格去掉的,然后再按固定分组来还原。我发现删去所有空格之后字符串长度为71,这是一个素数,不可以分解;再仔细看一下字符串,发现有些字符之间是有两个空格的,所以我就想空格是不可以忽略的,那么此时的字符串是85。85=17*5,那么我就可以猜想这里有两种情况,情况一:5个字符一栏;情况二:17个字符一栏。

分成5组,分别如下:
1)tn c0afsiwal kes,
2)hwit1r g,npt tt
3)essfu}ua u hmqik
4) e {m, n huiouos
5)arwCniibecesnren.

然后从上到下合并起来就是:
the anwser is wctf{C01umnar},if u is a big new,u can help us think more question,tks.

参考资料
[1] idf实验室_write_up_1(小试牛刀)
[2] IDF - CTF - 牛刀小试
[3] IDF-CTF-牛刀小试-聪明的小羊
[4] Linux下的16进制编辑器
[5] IDF 实验室部分题目WriteUp
[6] CTF比赛中必备的瑞士军刀ctf-tools
[7] ctf-tools