[UTCTF2020]basic-forensics
将下载下来的jepg用010打开发现是一个文本,所以把后缀名改成txt

搜索flag看到
utflag{fil3_ext3nsi0ns_4r3nt_r34l}`
[UTCTF2020]File Carving
下载完附件是一个图片,首先想到010打开看一下,在尾部发现一个压缩包

在kali里面binwalk一下

解压出来之后,执行file分析一下hidden_binary

发现是一个ELF文件所以我们执行命令即可得到

得到`
utflag{2fbe9adc2ad89c71da48cabe90a121c0}
[WUSTCTF2020]alison_likes_jojo
下载完压缩包里有两张图片,打开boki.jpg发现图片后面有个压缩包

在kali里binwalk一下

发现一个加密的压缩包,我们现在010里看一下是不是伪密码,观察发现并不是,所以我们用ARCHPR暴力破解一下

破解出来一个六位数密码888866

我们通过txt的名字就可以发现是bsae加密所以我们进行解码
第一次解码出来YTJsc2JHVnljWFZsWlc0PQ==
第二次解码出来a2lsbGVycXVlZW4=
第三次解码出来killerqueen
最终解码出来是killerqueen,这个字符串明显不是最终答案,像是一个密码,这里我们还有一个图片没有用到,通过010也没有发现有压缩包之类的,这个时候就想到outguess加密
**outguess下载**
Kail终端命令输入git clone https://github.com/crorvick/outguess
安装包随即下载到文件夹。双击打开文件夹,右键点击空白区域选终端打开。
随后输入以下命令./configure && make && make install 进行安装
outguess -k killerqueen -r jljy.jpg out.txt
执行这段代码 -k后面加密码,-r后面是文件名 最后加一个空格和解出来的数据放在什么下

最后得到wctf2020{pretty_girl_alison_likes_jojo}
[WUSTCTF2020]find_me
下载附件是一个jpg图片,右键属性看一下

发现一串盲文,很明显是盲文加密盲文解码网站

得到flagwctf2020{y$0$u_f$1$n$d$_M$e$e$e$e$e}
[WUSTCTF2020]spaceclub
下载之后是一个空白的txt,但是全选之后可以发现有东西

有sublime打开更直观一点

把短的设置为0,长的设置成1
011101110110001101110100011001100011001000110000001100100011000001111011011010000011001101110010011001010101111100110001011100110101111101111001001100000111010101110010010111110110011001101100010000000110011101011111011100110011000101111000010111110111001100110001011110000101111101110011001100010111100001111101
进入到二进制转换工具进行解码

得到flagwctf2020{h3re_1s_y0ur_fl@g_s1x_s1x_s1x}
[WUSTCTF2020]girlfriend
打开发现压缩包里还有一个压缩包我们把他解压出来,发现是一个音频
用Audacity打开

听到一串类似于拨号的声音,所以想到DTMF拨号音识别
dtmf2num下载地址
把音频放到dtmf2num目录下cmd执行dtmf2num.exe girlfriend.wav

出现一串数字999*666*88*2*777*33*6*999*4*4444*777*555*333*777*444*33*66*3*7777
通过刚才听到的事电话拨号的声所以想到九宫格打字,

连按三下9对应的事y,以此类推得到`
flag{youaremygirlfriends}
[WUSTCTF2020]爬
解压后用sublime打开

看到pdf开头,所以把文件后缀名改为pdf

下面提示flag被图片覆盖住了,所以我们讲图片移走

发现图片下面有一串字符串
0x77637466323032307b746831735f31735f405f7064665f616e645f7930755f63616e5f7573655f70686f7430736830707d
进行十六进制转文本 解码地址

得到flagwctf2020{th1s_1s_@_pdf_and_y0u_can_use_phot0sh0p}
[MRCTF2020]pyFlag
用010打开发现尾部有zip的数据,并且标着1,2,3



所以把这三串数据放到一个新的文件里(注意:我最开始是新建的十六进制文本保存之后用破解工具破解不了,一直找不到原因,后来去搜wp,其他人和我的方法一样,但是他们就能破解出来,后来研究了一会,决定把这三串数据放到已经是压缩包格式的文件里把原来的替换掉,这个时候才可以破解出来)

破解出来这两个文件


去各种base解密,没有解出来,看了一下其他人博客发现一个脚本
#!/usr/bin/env python
import base64
import re
def baseDec(text, type):
if type == 1:
return base64.b16decode(text)
elif type == 2:
return base64.b32decode(text)
elif type == 3:
return base64.b64decode(text)
elif type == 4:
return base64.b85decode(text)
else:
pass
def detect(text):
try:
if re.match("^[0-9A-F=]+$", text.decode()) is not None:
return 1
except:
pass
try:
if re.match("^[A-Z2-7=]+$", text.decode()) is not None:
return 2
except:
pass
try:
if re.match("^[A-Za-z0-9+/=]+$", text.decode()) is not None:
return 3
except:
pass
return 4
def autoDec(text):
while True:
if b"MRCTF{" in text:
print("\n" + text.decode())
break
code = detect(text)
text = baseDec(text, code)
with open("flag.txt", 'rb') as f:
flag = f.read()
autoDec(flag)
得到flag:MRCTF{Y0u_Are_4_p3rFect_dec0der}
[MRCTF2020]千层套路
下载完附件发现是这样的,题目说了是千层,在看见是压缩包就想到是类似于套娃之类的题


从这也可以看到,所以上脚本
import zipfile
name = '0573'
while True:
fz = zipfile.ZipFile(name + '.zip', 'r')
fz.extractall(pwd=bytes(name, 'utf-8'))
name = fz.filelist[0].filename[0:4]
fz.close()

运行一下发现出来一个qr.zip,就这个特殊,把它打开看一下

明显是RGB数据,再用脚本跑一下
from PIL import Image
x = y = 200
img = Image.new("RGB",(x,y))
file = open('qr.txt','r')
for width in range(0,x):
for height in range(0,y):
line = file.readline()
rgb = line.replace('(','').replace(')','').split(',')
img.putpixel((width,height),(int(rgb[0]),int(rgb[1]),int(rgb[2])))
img.save('flag.jpg')

出来一个二维码

得到flag:MRCTF{ta01uyout1nreet1n0usandtimes}
giveyourflag
下载出来是一个没有后缀名的文件,首先用010打开看一下

50 4B 03 04 压缩包格式的开头,所以接下来想到的是把文件改成zip格式,但是你解压之后还会发现里面有很多压缩包,所以想到的是我们想要的答案是不是在最后一个压缩包里

搜索50 4B 03 04看到有一千个压缩包套在一起,我们找到最后一个

可以清晰的看见最后一个压缩包里是有一串base64编码的字符串我们把它复制下来进行解码

GDVFWI{7ggqgll3jyukdncsti9icpc3feb0v5op}可以看到解码出来一个特别像最终答案的一串字符,但是这里面还有一个坑
可以想一下这个比赛是DASCTF举办的最终的flag应该是以DASCTF开头的,所以我们想到了凯撒加密

当位移为3的时候解出来最后的flag
DASCTF{7ddndii3gvrhakzpqf9fzmz3cby0s5lm}
闯入魔塔的魔法少女
下载文件之后是一个swf的文件,没有思路binwalk一下

发现两个文件,我们把它打开

在名字为8的这个文件里面搜索flag发现最终结果
DASCTF{23dvkjzr3juboiavztbncaxftfpyq5gz}
魔法少女的迷音
下载完文件之后,打开看见是一个加密的压缩包

nIhtnmTm+m0a+m0a0lA5LIA5LIA5LIA5LIA5LIA5LIA5LIA5LIA5L/CC atom128右边有提示,想到 atom128解码
压缩包密码是passswowoowowddddddddddddddddddddddddddd
打开文件是一段音频,听着好像是一段话被反过来说的,所以我么打开Audacity,选中所有区域,在效果模块里有反向这个选项

反转过来的音频我们就可以听到一串字符串
100 51 55 97 51 49 53 54 48 98 100 53 100 53 51 100 50 50 48 99 57 97 52 57 50 102 97 100 53 54 48 49
这里我们注意有可能听到的事151,150,153,但是我们可以看一下,这个字符串明显是ascll码形式,ascll码没有151,150,153对应的字母所以应该是100 51 100 50 100 53
public class a {
public static void main(String[] args) {
String a = asciiToString("100,51,55,97,51,49,53,54,48,98,100,53,100,53,51,100,50,50,48,99,57,97,52,57,50,102,97,100,53,54,48,49");
System.out.println(a);
}
public static String stringToAscii(String value)
{
StringBuffer sbu = new StringBuffer();
char[] chars = value.toCharArray();
for (int i = 0; i < chars.length; i++) {
if(i != chars.length - 1)
{
sbu.append((int)chars[i]).append(",");
}
else {
sbu.append((int)chars[i]);
}
}
return sbu.toString();
}
public static String asciiToString(String value)
{
StringBuffer sbu = new StringBuffer();
String[] chars = value.split(",");
for (int i = 0; i < chars.length; i++) {
sbu.append((char) Integer.parseInt(chars[i]));
}
return sbu.toString();
}
}
我们对字符串进行解码得到flag
d37a31560bd5d53d220c9a492fad5601
`
本文介绍了多个CTF竞赛中的取证分析案例,包括文件类型识别、压缩文件处理、音频及图像分析等,展示了如何利用不同工具和技术解决复杂问题。

1647

被折叠的 条评论
为什么被折叠?



