moctf部分题目writeup

moctf是理工和集大的大佬们搭建的平台,下面是一些我做出来的题目的writeup。

题目链接

MISC

捉迷藏

题目给了一个zhuomicang.zip的压缩包,解压得到flag.txt和2.jpg。果断打开flag.txt,里面的内容是:

1
bW9jdGZ7QnVfeUEwX3QxX2oxYTB9

看这架势应该是base64,拿去在线网站解一下,网址为:
http://www1.tc711.com/tool/BASE64.htm
解出来看起来像是flag了:

1
moctf{Bu_yA0_t1_j1a0}

但是仔细看,内容是不要提交,不管了先交,万一出题人想皮一下呢。交上去,报错。那只能看图片了,先用十六进制编辑器看一下,发现图片里面还有一个flag.txt。拿去kali里面binwalk一下,得到一个压缩包,解压得到flag.txt。里面是一串数字:

1
109 111 99 116 102 123 104 49 100 51 95 97 78 100 95 115 51 51 75 125

猜想应该是十进制转ASCII码,工具解一下,得到flag:moctf{h1d3_aNd_s33K}
工具地址:链接:https://pan.baidu.com/s/1IDsoRb40Tv4TAnQxlEAOQQ 密码:kch0

我可是黑客

点进链接是一张图片,图片上写了审查元素,按了下F12,没有东西。好吧,保存下来,用十六进制编辑器打开,发现最后面有料:moctf{e4sy_1ma9e_m1sc}。

光阴似箭

打开链接,是一张png的动图,保存为gif。然后拿去gif分解网站分解一下得到flag:
flag.jpg
在线gif分解网站

扫扫出奇迹

二维码扫描工具,扫一下得到flag:moctf{qr_code_1s_1n_1t}

杰斯的魔法

打开链接,是一串js代码,document.write()方法是用来向网页输出内容的。所以,复制一下扔控制台,得到flag。
js.jpg

百变flag

打开链接,发现左上角有一小张图片,但是右键不能保存,返回题目链接,右键保存,得到一张f1ag.png。用十六进制编辑器查看,发现后面有一个f1ag.exe,于是拿到kali分解,提取出压缩包,里面就是f1ag.exe,但是打不开。
这时候打开十六进制编辑器(WinHex),在最后面发现重要线索。
百变flag
图片中的数据好像被反过来了,这时候想到提示:特殊文件头+简单字符串编程,应该就是要把数据反回来,再加上文件头。
python启动

1
2
3
output = inputFile[::-1]
outputFile = open('output', 'wb')
outputFile.write(output)

运行后得到output文件,用WinHex查看发现已经反回来了,而且文件头已经有了:FFD8FFE1,是JPEG的文件格式,所以加上.jpeg后缀就得到flag了。
output.jpeg

歌曲

下载压缩包,解压得到apple.mp3和apple.png。图片中间藏着一个二维码,扫描出来是一串Unicode编码:

1
\u7f8a\u7531\u5927\u4e95\u592b\u5927\u4eba\u738b\u4e2d\u5de5

拿去在线网站解一下:
Unicode编码转换
得到一串中文:羊由大井夫大人王中工,很明显是当铺密码,解出来是:9158753624。
然后是一个MP3文件,猜测应该是一个MP3隐写,前面那串数字是密码,用MP3stego试一下:在Decode.exe目录下,运行cmd,输入Decode.exe -X apple.mp3 -P 9158753624(MP3文件放到该目录)。运行后生成一个apple.mp3.txt的文件,文件内容为:

1
Q1RGe3hpYW9fcGluZ19ndW99

拿去base64一下,得到:CTF{xiao_ping_guo}

机密压缩包

这题刚开始没什么头绪,试了下伪加密发现不对,百度了一波,发现一篇类似的文章安利一下:
crc32碰撞
这是关于CRC32碰撞的一道bugku上的题目的writeup,当压缩内容较小时,可以利用里面文件的CRC校验值进行碰撞攻击,下面是解题脚本:

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
#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import binascii
import time
import winsound

startTime = time.time()
keys = [int("0x5A52D4F4",16),
int("0x5FA0F28B",16),
int("0xF899F771",16),
int("0x957AF788",16),
int("0xF8208C12",16)]

myRange = [' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', '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', '[', '\\', ']', '^', '_', '`', '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', '{', '|', '}', '~']

RESULT = {}

def getCRC32(str):
'''
计算CRC32
'''
return (binascii.crc32(str) & 0xffffffff)

def checkSuccess(keys, mycrc32, words):
'''
检测是否成功匹配
参数 :
keys : 所有需要爆破的CRC32值
mycrc32 : 某次计算得到的明文(words)的CRC32
words : 明文
'''
global RESULT
for key in keys:
if key == mycrc32:
RESULT[keys.index(key)] = words

words = ""

counter = 0
oldTime = time.clock()

for i in myRange:
nowTime = time.clock()
print "Trying : " + words + "\t" + "Speed : " + str(counter / (nowTime - oldTime)) + " / s" + "\t" + "Result : " + str(RESULT) # 输出日志
oldTime = nowTime
for j in myRange:
for k in myRange:
words = i + j + k
counter += 1
myCRC32 = getCRC32(words) #
checkSuccess(keys, myCRC32, words)


endTime = time.time()

print "Result : " + str(RESULT)

print "Cost : " + str(endTime-startTime) + " s"

运行得到:ctf{qwasdzxcqa}

假装安全

50分的题目,应该是水题。jpg图片一般先用stegsolve和binwalk试一下,先用binwalk跑一下,得到一个压缩包,里面就是flag.txt。打开看到一串字符串,栅栏加密,密码为2。
mcfCrflyS1eot{@eul_ld}

女神的告白

题目已经说的很清楚了,暴力破解,前六位为:meimei,用木头字典生成工具写个字典,跑一下得到密码:
meimei.jpg
解压得到flag:moctf{Y0u_@re_A_g00d_man}

蒙娜丽萨的微笑

提示说注意图片名字,有道了一下发现是像素的意思,想到图片隐写,老规矩,binwalk先跑一下(比较快),得到一个压缩包,但是没有密码。说明密码还在这张图片里面。提示二说base64,看来密码是base64得到的,但是确不知道从何下手。接下来对图片进行各种尝试,最后试出来:修改图片宽度。
pixel.jpg
图片宽度就是图中红线处,第二行前4字节是长度,接着4字节是宽度。改完之后,发现图片下面有一串字符串,拿去base64,得到密码是:simleisintering。解压得到flag:moctf{Int3resting_piXe1}

未完待续。。。

------ 本文结束感谢您的阅读 ------
坚持原创技术分享,您的支持将鼓励我继续创作!