MISC新手练习题集

MISC新手练习题集 - 攻防世界

Banmabanma

用在线网站工具 Barcode Reader 识别图片二维码内容即可。

内容为“FLAG IS TENSHINE”,格式化为flag{TENSHINE}

low

可以使用python对图片进行lsb隐写解析。

1
2
3
4
5
6
7
8
9
10
11
12
import PIL.Image as Image
img = Image.open('low.bmp')
img_tmp = img.copy()
pix = img_tmp.load()
width,height = img_tmp.size
for w in range(width):
for h in range(height):
if pix[w,h]&1 == 0:
pix[w,h] = 0
else:
pix[w,h] = 255
img_tmp.show()

也可以使用stegsolve对图片进行解析,但需要先打开该bmp图片,将其另存为png格式再进行解析,可以在 Red plane 0 时发现二维码。

最后使用QR research(CQR)识别出二维码内容即可。
flag{139711e8e9ed545e}

适合作为桌面

使用Stegsolve对图片进行解析,在 Red plane 1 时发现二维码,扫描得到十六进制信息。
03F30D0A79CB05586300000000000000000100000040000000730D0000006400008400005A000064010053280200000063000000000300000016000000430000007378000000640100640200640300640400640500640600640700640300640800640900640A00640600640B00640A00640700640800640C00640C00640D00640E00640900640F006716007D00006410007D0100781E007C0000445D16007D02007C01007400007C0200830100377D0100715500577C010047486400005328110000004E6966000000696C00000069610000006967000000697B000000693300000069380000006935000000693700000069300000006932000000693400000069310000006965000000697D000000740000000028010000007403000000636872280300000074030000007374727404000000666C6167740100000069280000000028000000007304000000312E7079520300000001000000730A0000000001480106010D0114014E280100000052030000002800000000280000000028000000007304000000312E707974080000003C6D6F64756C653E010000007300000000

03 F3 0D 0A是pyc文件的文件头,是python编译后的字节码文件。

使用在线网站工具HexEd.it对十六进制数据进行分析也可以发现是…,另存为pyc文件。

使用在线网站工具python反编译对该pyc文件进行反编译,得到python源码。

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
def flag():
str = [
102,
108,
97,
103,
123,
51,
56,
97,
53,
55,
48,
51,
50,
48,
56,
53,
52,
52,
49,
101,
55,
125]
flag = ''
for i in str:
flag += chr(i)

print flag

注意这段源码是python2的语法,如果使用python3运行需要修改部分语法,而且这段源码并不完整,只是自定义了一个 flag() 函数,需要补齐执行函数语句flag()才可以输出最终结果。
flag{38a57032085441e7}

心仪的公司

题目附件是一个名为“webshell.pcapng”的抓包文件,使用Wireshark打开,根据文件名提示进行过滤筛选http contains "webshell",发现一个照片文件,追踪其http流在 Expert Info (Chat/Sequence) 中即可发现flag隐藏其中。
fl4g:{ftop_Is_Waiting_4_y}

当然这题使用 010Editor 打开文件搜索文本内容“fl4g”也可以找到答案,此类题目可以多尝试去搜索文件中的 flag 关键词。

4433

老样子使用Stegsolve对图片进行解析,在 Red plane 1 时发现二维码,使用QR research扫描得到一串神秘字符,很明显是摩尔斯电码。
...--.----...--..

观察摩尔斯电码对照表,每一个字母是对应1到4个摩尔斯电码字符的,那题目4433是否意味着划分的位置,来尝试一下,使用在线摩斯密码翻译器进行解码,得到内容。
VYGUD

内容是电码的缩写内容,原文为“VERY GOOD”,那么flag如下。
flag{VERYGOOD}

traffic 待写

使用 010Editor 搜索 flag 相关关键词没有得到有效信息,使用Wireshark对该文件进行流量分析,

第四扩展FS

使用Stegsolve对图片进行解析,无果。

使用Kali中的工具binwalk对文件进行检测,发现该jpg文件下还隐藏着一个zip文件
binwalk 99828589220e46d08092cc3fe7d09fbb.jpg

继续使用binwalk对文件进行拆分。
binwalk -e 99828589220e46d08092cc3fe7d09fbb.jpg --run-as=root

拆分后是一个名为“file.zip”的压缩包文件,解压需要密码,回到题目最初给的图片,发现其属性中有个备注信息“Pactera”,将其作为密码进行尝试,解压成功,里面有一个文本文件,内容是一大段的字符串,再根据题目信息提示,对该文件进行字频分析,按照字频高低依次排序得到flag。
DCTF{ka1f4NgxlntAi}

在此可以使用python对文件进行字频分析。

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
from collections import Counter

def analyze_text(filename):
# 初始化计数器
counter = Counter()

try:
with open(filename, "r", encoding="utf-8") as file:
# 读取文件内容
content = file.read()

# 遍历文件内容的每个字符
for char in content:
counter[char] += 1

# 输出结果
print("字频分析结果:")
for char, freq in counter.most_common():
print(f"'{char}': {freq}次")

except FileNotFoundError:
print(f"文件 {filename} 未找到。")
except Exception as e:
print(f"读取文件时发生错误:{e}")


filename = "file.txt"
analyze_text(filename)

misc1

题目给出一段字符串,观察发现似乎是十六进制数,猜测为ASCII码,但其大小并不符合ASCII码的字母范围,在十六进制字符串转ASCII字符串时,对每个字符减去128后再进行转换,即可得到答案。
d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9e1e6b3e3b9e4b3b7b7e2b6b1e4b2b6b9e2b1b1b3b3b7e6b3b3b0e3b9b3b5e6fd

在此使用python进行处理。

1
2
3
4
5
s = "d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9e1e6b3e3b9e4b3b7b7e2b6b1e4b2b6b9e2b1b1b3b3b7e6b3b3b0e3b9b3b5e6fd"
flag = ""
for i in range(0,len(s),2):
flag+=chr(int(s[i:i+2],16)-128)
print(flag)

That was fast! The flag is: DDCTF{9af3c9d377b61d269b11337f330c935f}

pure_color

使用Stegsolve对图片进行解析,在 Blue plane 0 时发现 flag 。
flag{true_steganographers_doesnt_need_any_tools}

2017_Dating_in_Singapore

附件给到一个2017年新加坡的日历,题目提示信息给出一大堆数字。

1
01081522291516170310172431-050607132027262728-0102030209162330-02091623020310090910172423-02010814222930-0605041118252627-0203040310172431-0102030108152229151617-04050604111825181920-0108152229303124171003-261912052028211407-04051213192625

仔细观察发现数字内容为日期,用连字符作为月份的分隔,第一月份的日期为01 08 15 22 29 15 16 17 03 10 17 24 31,第二月份的日期为05 06 07 13 20 27 26 27 28,以此类推,在日历上对应的日期处做标记,连接标记即可得到 flag 。
HITB{CTFFUN}

simple_transfer

使用 010Editor 搜索 flag 相关关键词没有得到有效信息,使用Wireshark对该文件进行流量分析,无果。

参考 第四扩展FS,分解得到一个pdf文件,文件内容即为 flag 。
HITB{b3d0e380e9c39352c667307d010775ca}

Training-Stegano-1

使用Stegsolve对图片进行解析,在多个通道中发现一些黑白块,刚开始以为是破碎的二维码,想是否需要多通道导出后进行图形拼接得到完整二维码,但是没有明显的二维码标识形状,况且题目提示简单,思路有误,停止尝试。

使用 010Editor 打开该文件后发现里面有一个passwd字段,其内容就是答案。
steganoI

can_has_stdio?

附件是一个没有后缀名的文件,用记事本打开,像一个星星,上网查找发现是Brainfuck编码,使用在线网站工具解码即可。
flag{esolangs_for_fun_and_profit}

Erik-Baleog-and-Olaf

用 010Editor 打开文件发现png文件头和文件尾,在文件尾前面还发现一个网址信息。
http://i.imgur.com/22kUrzm.png

打开此网址是一张图片,下载并保存为“22kUrzm.pn”。

为题目所给文件加上.png后缀也得到一张图片“stego100.png”。

这里下载的那张图片是原图片,题目给出的图片是处理之后的图片,将两张图片的每个像素点进行比较,如果不同则标记该像素点为白色,使用python对两种图片进行比较从而得到二维码,扫码内容即为答案。

1
2
3
4
5
6
7
8
9
10
11
12
13
from PIL import Image
exp = Image.open("22kurzm.png") # 网站下载的图片
cipher = Image.open("stego100.png") # 题目给的图片
new = Image.new("RGBA", size=exp.size)
for i in range(640):
for j in range(480):
y_p = exp.getpixel((i, j))
c_p = cipher.getpixel((i, j))
if y_p == c_p:
pass
else:
new.putpixel((i,j), (255,255,255))
new.save("result.png")

flag{#justdiffit}

在这之前使用Stegsolve对图片进行解析,在 Blue plane1 中发现残缺的二维码,可惜难以识别,在Radom color map通道中多试几次,找到尽量识别度高的二维码图片,进行PS的处理,似乎也可以识别二维码内容。

János-the-Ripper

用 010Editor 打开文件发现zip文件头和文件尾,加上.zip后缀尝试解压发现需要密码。

预览发现里面的文件是 flag.txt ,没有发现任何提示,直接使用 Ziperello 进行暴力破解得到密码“fish”。

文件内容即为 flag 。
flag{ev3n::y0u::bru7us?!}

Test-flag-please-ignore

用 010Editor 打开文件内容如下。
666c61677b68656c6c6f5f776f726c647d

很明显是十六进制数,使用python进行十六进制字符串转ASCII字符串拿下。

1
2
3
4
5
s = "666c61677b68656c6c6f5f776f726c647d"
flag = ""
for i in range(0,len(s),2):
flag+=chr(int(s[i:i+2],16))
print(flag)

flag{hello_world}

misc_pic_again

使用Stegsolve对图片进行解析,切换通道无果,那进行数据提取,选中RGB三层的0号位平面进行Preview,发现50 4b文件头,是zip文件,Save Bin保存为zip文件进行解压,里面有一个名为“1”的无后缀文件,用 010Editor 按照题目提示搜寻“hctf”关键词即可找到答案。
hctf{scxdc3tok3yb0ard4g41n~~~}

用binwalk检测文件发现还隐藏着一个Zlib文件。
Zlib compressed data, default compression

再使用binwalk对文件进行分离,得到两个文件,“29.zlib”和“29”。

而 Zlib 不同的压缩方式有不同的文件头,那这个默认压缩方式的文件头是78 9C。

文件头 压缩方式
78 01 No Compression/low
78 9C Default Compression
78 DA Best Compression

用 010Editor 对“29.zlib”进行分析发现确实如此,但是“29”却并不是以 78 DA 作为文件头,搜索 78 DA 可以发现其中包含一个 zlib 文件。

reverseMe

题目名称显而易见,水平翻转图片就可以看出图片内容了。
flag{4f7548f93c7bef1dc6a0542cf04e796e}

Hear-with-your-Eyes

是一个gz压缩包,解压得到文件,使用Audacity进行音频分析,这个软件在微软商店中也有上架,将文件作为原始数据导入软件中,打开该音频的频谱图,发现flag。
e5353bb7b57578bd4da1c898a8e2d767

What-is-this

识别文件、分解文件不再赘述,分解后得到两张图片文件,使用Stegsolve合并图片即可得到答案。
AZADI TOWER

hit-the-core

题目附件给出一个 core 文件,这是 Linux 在程序异常崩溃时会生成的文件,Linux 的文件就用 Linux 的方法来治,使用 Kali 中的 strings 命令对文件进行打印输出,这个命令用于从二进制文件中提取 ASCII字符串,非常好用。
strings 8deb5f0c2cd84143807b6175f58d6f3f.core -n 6

在上面这个命令语句中,-n 参数表示至少输出长度为6的字符串,减少了非 flag 信息字符串的干扰。

在输出中发现一长串字符,观察发现规律,前面一段每隔四个小写字母均出现大写字母,组合正好为比赛名“ALEXCTF”,用python进行提取,得到 flag 。

1
2
3
s = "cvqAeqacLtqazEigwiXobxrCrtuiTzahfFreqc{bnjrKwgk83kgd43j85ePgb_e_rwqr7fvbmHjklo3tews_hmkogooyf0vbnk0ii87Drfgh_n kiwutfb0ghk9ro987k5tfb_hjiouo087ptfcv}"

print(s[3::5])

ALEXCTF{K33P_7H3_g00D_w0rk_up}

glance-50

题目给了一个gif文件,打开发现是一个很细长的动图,那么应该是将这些细长的每一帧拼接起来,用GIF动态图片分解即可得到答案。
TWCTF{Bliss by Charles O'Rear}

something_in_image

使用 010Editor 搜索 flag 相关关键词得到答案。
Flag{yc4pl0fvjs2k1t7T}

Aesop_secret

题目给到gif文件,上动态分解发现“ISCC”,使用 010Editor 分析,发现文件末尾有一长串编码。
U2FsdGVkX19QwGkcgD0fTjZxgijRzQOGbCWALh4sRDec2w6xsY/ux53Vuj/AMZBDJ87qyZL5kAf1fmAH4Oe13Iu435bfRBuZgHpnRjTBn5+xsDHONiR3t0+Oa8yG/tOKJMNUauedvMyN4v4QKiFunw==

看上去像base64编码,但直接解码无果,而且也没有用上动态分解给到的信息,用ISCC作为密钥,使用AES二次解密得到答案。

flag{DugUpADiamondADeepDarkMine}

a_good_idea

分解文件得到两张图片和提示,使用Stegsolve合并图片,先放入“to_do.png”,再叠加“to.png”在sub运算中得到二维码,识别二维码内容即可。
NCTF{m1sc_1s_very_funny!!!}

Ditf

使用 010Editor 修改图片宽高,将04 4C改为05 4C后保存,出现StRe1izia
分离文件得到一个加密压缩包,用上面的字符串解密成功,得到抓包文件。

搜索抓包文件中的关键词“png”,追踪http流找到一串字符。
ZmxhZ3tPel80bmRfSGlyMF9sb3YzX0ZvcjN2ZXJ9

base64解码得到 flag 。
flag{Oz_4nd_Hir0_lov3_For3ver}