MISC刷题记录

另外一个世界

考点:简单的二进制转十进制转ascii码。

解题:010打开找到末尾一串二进制字符:

以8位为一组,转换为10进制,再对照ASCII码表得出字符。最后以flag格式提交。

FLAG

考点:LSB隐写转bin文件

解题:拿到手的时候是一张图片

扔到steg中仔细分析,发现特别LSB隐写。

看看样子是个压缩包,010新建一个文件,将图片里的bin信息放入,改后缀为zip,解压zip后依次查看这些文件信息,在一个名为.rodata文件中找到flag。

数据包中的线索

考点:流量包追踪流分析,http过滤

解题:将题目里pcapng的文件拖进wireshark流量分析一波

发现有http的流量,于是我们过滤http,然后追踪http流,发现base64的编码

看到了base64编码

拿着base64去解密成图片,Base64解码 Base64编码 UTF8 GB2312 UTF16 GBK 二进制 十六进制 解密 – The X 在线工具 (the-x.cn) 然后我们将图片下载下来,得到flag

假如给我三天光明

考点:盲文对照、音频转莫斯解密

解题:根据题目联系到盲文。将图片和盲文对照表对照:盲文对照表 – gwind – 博客园 (cnblogs.com)

解出得到:kmdonowg

用解出的盲文解压出压缩包。得到一个.wav的音频文件

打开看着像是摩斯密码:

-.-. - ..-. .-- .--. . .. ----- ---.. --... ...-- ..--- ..--.. ..--- ...-- -.. --..
莫斯解密得到:CTFWPEI08732?23DZ(即为flag)

荷兰宽带数据泄露

考点:路由器密码查看器 (RouterPassView)

解题:RouterPassView,大多数现代路由器允许您备份到一个文件路由器的配置,然后从文件中恢复配置时的需要。路由器的备份文件通常包含了像您的ISP的用户名重要数据/密码,路由器的登录密码,无线网络的关键。如果你失去了这些密码1 /钥匙,但你仍然有你的路由器配置的备份文件,RouterPassView可以帮助你从你的路由器恢复您丢失密码的文件。

RouterPassView是一个找回路由器密码的工具。大多数现代路由器允许备份到一个文件路由器的配置,然后从文件中恢复配置时的需要。路由器的备份文件通常包含了像ISP的用户名重要数据/密码,路由器的登录密码,无线网络的关键。如果失去了这些密码1 /钥匙,但仍然有路由器配置的备份文件,RouterPassView可以帮助你从你的路由器恢复您丢失密码的文件。

故我们查找对象就是 用户名和密码 (flag即为用户名)

面具下的flag

考点:vmdk文件,vmdk解压

解题:打开附件是一张图片,用010打开发现有flag.vmdk文件,直接该源文件后缀名为.zip。解压得到flag.vmdk文件,vmdk文件其实是虚拟机使用的硬盘文件

关键步骤

这里如果在windows系统上解压,则得不到关键文件(可能是因为vmdk是虚拟机使用的硬盘文件),但在虚拟机里可以解压成功

先在windows解压看看

直接点zip,不用解压,用7z一直点进去,出现这个再解压

key one

什么也没有

key two

也什么都没有

可以发现没有什么有效信息

在kali解压

Linux压缩包的解压与压缩指令大全 然而再Linux解压就会出现Windows里没有的文件 7z x flag.vmdk

key one

+++++ +++++ [->++ +++++ +++<] >++.+ +++++ .<+++ [->-- -<]>- -.+++ +++.<
++++[ ->+++ +<]>+ +++.< +++++ +[->- ----- <]>-- ----- --.<+ +++[- >----
<]>-- ----- .<+++ [->++ +<]>+ +++++ .<+++ +[->- ---<] >-.<+ +++++ [->++
++++< ]>+++ +++.< +++++ [->-- ---<] >---- -.+++ .<+++ [->-- -<]>- ----- .<

看起来像是brainfuck加密 在线解密网址:https://www.splitbrain.org/services/ook

得到一半flag
flag{N7F5_AD5

key two

这个特征就很明显了,是Ook加密 还是上面那个网址

_i5_funny!}
组合一下就得到flag :flag{N7F5_AD5_i5_funny!}

九连环

考点:伪加密、steghide提取图片隐写信息、foremost分离文件

解题:首先将附件放到010中进行查看,发现含有两个头文件,于是放到binwalk下面,发现还含有一个压缩包。用foremost分离出来,打开该压缩包,里面含有一个带密码的压缩包和一个图片文件。

查看一下文件头和文件尾

可以发现对应压缩包的内含压缩包中的加密为伪加密,这里对应一下前面的文件头,将这里的0108改为前面对应的0008就可以了。然后就能重新解压出完好的文件了。解压asd压缩包发现需要密码。

于是猜测图片中有密码,将图片放到stegohide中提取一下发现有隐藏信息:于是用命令行进行提取:

steghide extract -sf good.jpg

被偷走的文件

考点:压缩包密码爆破、流量过滤和查找、wireshark提取流量中的压缩包

解题:按照提示,文件对应 FTP 协议,搜索

发现被偷走了 flag.rar,wireshark 截取的流量中,会截取文件传输对应的流量,也就是说,这个流量包 包括 flag.rar,我们用foremost 分离,得到压缩包。压缩包有密码。这里没有多余的提示,按照惯例四位数字爆破,然后解压压缩包得到flag

刷新过的图片

考点:压缩包密码爆破、F5隐写

解题: F5隐写,利用工具:F5-steganography: https://github.com/matthewgao/F5-steganography

得到的output.txt用010观察,明显是个zip文件,修改后缀为zip,发现含有密码,因为没有其他信息提示,因此用010查看一下,发现是伪加密,改一下信息,解压压缩包得到flag

snake1

考点:foremost分离、serpent加密算法

解题:下载附件,解压得到一张snake的图片。

1、拿到图片,放010 Editor看一下,找到PK标识,说明有隐藏的zip压缩包。

使用Kali中的binwalk工具进行检测,确实存在zip压缩包,用foremost工具分离出zip压缩包。

解压zip压缩包,解压成功,得到两个文件:cipher、key。

其中key 文件打开后,显示一串用base64过的密文字符串。

CyberChef (1357310795.github.io)(用chef解密一下)

解密之后,得到一个明文字符串

搜索了一下,找到提示所指向的内容。《Anaconda》是美国说唱女歌手妮琪·米娜演唱的一首说唱歌曲,是妮琪·米娜成绩最高的歌曲之一。“anaconda”就是我们要找的key。

cipher: 是一个数据格式的文件。我是看了别人的题解,才知道使用的是serpent加密算法,同时法语“serpent”翻译过来也是蛇的意思,切合题目。

SERPENT算法学习心得_serpent256算法-CSDN博客

使用在线工具进行解密,再加上之前得到的key,最后得到flag

Serpent Encryption – Easily encrypt or decrypt strings or files (online-domain-tools.com)

神奇的二维码

考点:密码的混用。图片包含压缩包、base64嵌套加密

解题:打开图片,发现二维码,扫描无果,放入binwalk分析,提炼出其中的隐藏压缩包,得到4个压缩包,三个能解压,只有一个18494.rar需要密码。

依次查看各个文件,均无异常,解密encoding文件(base64加密)

解密为 asdfghjkl1234567890

用该密码打开716A压缩包中的另一个加密压缩包,只得到一张图片。接着看flag.doc,发现为嵌套base64加密,用脚本解密

import base64
def decode(f):
	n = 0;
	while True:
		try:
			f = base64.b64decode(f)
			n += 1
		except:
			print('[+]Base64共decode了{0}次,最终解码结果如下:'.format(n))
			print(str(f,'utf-8'))
			break

if __name__ == '__main__':
	f = open('./base64.txt','r').read()
	decode(f)

得到结果:comEON_YOuAreSOSoS0great

用这个密码解密得到good.mp3文件,用使用Audacity打开,

经典的摩斯密码,解密得到

-- --- .-. ... . .. ... ...- . .-. -.-- ...- . .-. -.-- . .- ... -.--

摩斯电码在线转换:http://www.zhongguosou.com/zonghe/moersicodeconverter.aspx

得到flag

纳尼

考点:Gif文件头格式

解题:打开题目,给了提示,根据提示应该是这个文件打不开,看到是gif文件搜索一下gif文件的文件头为

4749463839            ASCII码就是 GIF89a

用winhex打开这张gif,发现

只有一个9a,疑似文件头损坏,将对应文件头加上,成功打开文件,打开文件后是一连串的字符,用stegsolve打开截取每一帧,然后拼凑成完整字符

Q1RGe3d hbmdfYm FvX3FpYW5n X2lzX3NhZH0=

base64解密,拿到flag

excel破解

考点:关于excel加密文档密码绕过

解题:将文件改成rar,然后用010打开,ascii码搜索flag即可

梅花香之苦寒来

考点:png信息收集,坐标画图二维码

解题:打开附件,查看文件属性,得到提示“你会画图吗”,用010打开,检查文件头、刚开始打开图片我看到写的“图穷匕见”,还以为是修改文件高度和宽度。结果在16进制看到了一连串的编码,复制下来,用脚本解密

with open('hex.txt', 'r') as h:     # hex.txt为要转换的文本文件
    val = h.read()
    h.close()

with open('result.txt', 'w') as re: # 转换完成后写入result.txt
    tem = ''
    for i in range(0, len(val), 2):
        tem = '0x' + val[i] + val[i+1]
        tem = int(tem, base=16)
        print(chr(tem), end="")
        re.write(chr(tem))
    re.close()

运行脚本解密得到返回值是一堆坐标,根据上述文件属性中的提示,可能是要我们用坐标画图。这我不会,见下面的WP

【BUUCTF】梅花香自苦寒来_buuctf 梅花香之苦寒来-CSDN博客

更简单的脚本(一命通关)16进制解密后用matplotlib画图

f=open('meihuai.jpg','rb').read()
f=f[6+21232:]
f=f.decode()
import binascii
f=binascii.unhexlify(f).decode()
f=f.split('\n')
o=open('out','w')
for i in f:
    o.write(i.strip('(').strip(')')+'\n')
o.close()

#上面的代码是用于16进制解密生成out文件,可根据需要自行修改
import matplotlib.pyplot as plt
import numpy
x,y=numpy.loadtxt('out',delimiter=',',unpack=True)
plt.plot(x,y,'.')
plt.show()

得到一张二维码,用二维码扫描器扫出flag即可

outguess

考点:outguess隐写工具使用

解题:拿到是一个tar压缩包,放到虚拟机中用tar命令解压,得到张图片和txt文件,txt文件查看无果,检查图片,看到其属性中有社会主义价值观编码

公正民主公正文明公正和谐

解码CTF在线工具-在线核心价值观编码|核心价值观编码算法|Core Values Encoder (hiencode.com)

得到“abc”字符串,练习题目outguess正好需要一个key,于是猜测为outguess隐写,输入命令

隐写工具outguess安装使用教程_outguess使用-CSDN博客

outguess -k “abc” -r mmm.jpg hidden.txt

然后拿到flag

谁赢了比赛

考点:小综合

解题:打开附件第一眼我还以为是个二维码,结果非也。用010看看没什么结果,用binwalk看看,发现有压缩包,binwalk解压出来,得到txt、gif两个文件,检查txt文件无异常,但是gif文件需要密码解压。尝试用压缩包爆破工具,得到密码,解压出gif文件。

打开gif文件看着有点像二维码,用stegsolve 看看

这一帧有蹊跷保存一下这一帧,再用颜色通道看看,当red=0时出现二维码,扫码拿到flag

低个头

考点:第一次见

解题:BUUCTF:[HBNIS2018]低个头_[hbnis2018]低个头 1-CSDN博客

黑客帝国

考点:文件头的识别、十六进制如何以二进制流形式写入文件

解题:打开附件起初以为是某种循环编码,但是太长了让我想到会不会是文件头格式,打开看到前面为

52 61 72 21 1A 07 00

刚好就是rar压缩包文件头,但是单独改后缀并不能改成rar,因为他并不是以二进制形式写入文件,这里要用到脚本

import binascii

# 读取文件1.txt的十六进制数据
with open('1.txt', 'r') as file:
    hex_data = file.read().strip()

# 将十六进制数据写入到文件res.rar
with open('res.rar', 'wb') as out:
    out.write(binascii.unhexlify(hex_data))

接下来用工具爆破压缩包密码,打开解密的压缩包。得到一张破损图片,用010看看,弹出提示

检查文件头和尾部

文件头为89504E47    文件尾为FFD9

应该是jpg图片被改成png的文件头,把8950…改成FFD8即可拿到flag

你能看懂音符吗

考点:音符解密、word文件转压缩包

解题:打开是一个损坏的rar文件,检查文件头,将文件头修复即可打开文件,解压出来,得到一个word文件

把后缀名改成rar文件,打开后检查一下各类文件,可能出存在一些信息,找到一个document.xml文件,进入可以看到音符

♭♯♪‖¶♬♭♭♪♭‖‖♭♭♬‖♫♪‖♩♬‖♬♬♭♭♫‖♩♫‖♬♪♭♭♭‖¶∮‖‖‖‖♩♬‖♬♪‖♩♫♭♭♭♭♭§‖♩♩♭♭♫♭♭♭‖♬♭‖¶§♭♭♯‖♫∮‖♬¶‖¶∮‖♬♫‖♫♬‖♫♫§=

进行音符解密文本加密为音乐符号,可自设密码|文本在线加密解密工具 (qqxiuzi.cn) 得到flag

我吃三明治

考点:base32解密、双图拼接

解题:打开附件,为一张图片,打开010查看,很明显有两张图片,两图之间夹着一串base32密文

MZWGCZ33GZTDCNZZG5SDIMBYGBRDEOLCGY2GIYJVHA4TONZYGA2DMM3FGMYH2

解密后为flag{6f1797d4080b29b64da5897780463e30}

NTFS数据流

考点:NTFS数据流扫描

[硬盘取证]初探NTFS隐写 – 简书 (jianshu.com)谈谈NTFS数据流文件_ntfs流-CSDN博客

解题:打开附件,注意:这里解压的时候使用Win RAR解压,涉及NTFS流的都需要Win RAR解压

解压完之后,使用NtfsStreamsEditor工具扫描flag文件

导出flag.txt得到flag

sqltest

考点:sql注入之布尔盲注、流量审计

解题:打开附件流量包,一眼就看到了sql语句,url中有selectSCHEMA_name等,可以确定是对mysql数据库的盲注,过滤HTTP协议,然后检索一下有无flag字眼。

导出HTTP对象

或者用tshark提取更方便

tshark -r sqltest.pcapng -Y "http.request" -T fields -e http.request.full_uri > data.txt
-r 读取文件
-Y 过滤语句
-T pdml|ps|text|fields|psml,设置解码结果输出的格式
-e 输出特定字段
http.request.uri http请求的uri部分

从末尾可以看到,黑客已经爆破出数据库名,表名,字段名,而我们本道题要的是flag,所以仅仅需要判断字段内容即可,因为黑客使用的SQL布尔盲注,我们只需解出ASCII即可

具体分析注入过程:

1.获取数据库名

获取information_schema.SCHEMATA中数据行数的长度,从中可以知道长度是1

获取information_schema.SCHEMATA中数据行数chr(53) = '5',即infomation_schema.SCHEMATA有5行数据information_schema.SCHEMATA中保存了所有数据库

(第19行-第61行+第65,66行) 开始获取每一个数据库的长度,这一部分是并发执行的

(62,63,64,第67-417行) 开始获取每一个数据库库名,并发执行

2.获取表名

418行已经获取到了库名,开始获取表名个数的长度

然后获取表名个数

然后是表名长度

然后是表名(445-510)

511看到已经获取了表名,并开始获取字段个数的长度

3.获取字段名

然后获取字段个数

然后获取每一个字段长度

然后并发获取每个字段字段名(546-601)

4.获取值

然后获取值个数的长度

然后获取值的个数,值的个数为1

然后获取值的长度,这一个值的长度是38

然后获取值的内容(628-972)

这一步就是我们要找的flag

写一个脚本提取一下。我们知道注入语句为

id=1 and ascii(substr(((select concat_ws(char(94), flag)  from db_flag.tb_flag  limit 0,1)), {第i个字符}, 1))>{字符的ascii值}

我们把第i个字符ascii值提取出来,取i变化时的值,脚本为:

import urllib.parse
f = open("data.txt","r").readlines()

s = []
for i in range(627,972):
    data = urllib.parse.unquote(f[i]).strip()
    payload = data.split("and")[1]
    positions = payload.find("from db_flag.tb_flag  limit 0,1)), ")
    data1 = payload[positions+35:].split(",")[0]
    data2 = payload[positions+35:].split(">")[1]
    s.append([data1,data2])

for i in range(1,len(s)):
    if s[i][0]!=s[i-1][0]:
        print(chr(int(s[i-1][1])),end="")
print(chr(int(s[-1][1])))

得到flag

swp

考点:wget流量审计、伪加密

zip伪加密原理及操作_zip加密原理-CSDN博客

解题:解压打开流量包,导出http,可以看到一个疑似secret.zip的文件

打开该压缩文件,得到两个文件flag.file和.flag.swp文件

看起来似乎有加密存在,检查一下,发现是伪加密。

用工具ZipCenOp.jar恢复伪加密或者用winhex改正。这里不知道为什么我用010修改文件头并没有解决伪加密

zipcenop的命令
java -jar .\ZipCenOp.jar r .\secret.zip

还有一点,360压缩貌似能够自己解决伪加密

解压出.flag.swp后即可得到flag

SXMgdGhpcyBiYXNlPw==

考点:base64隐写、[MISC]Base64隐写-CSDN博客

解题:将题目用base64解密成Is this base?

将附件全部用base64解密,就可以成为

这样一首歌,但是没有其他提示信息,于是猜测为base64隐写

然后进行base64解密,脚本如下:

def base64value(c):
    table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
    for i in range(64):
        if table[i] == c:
            return i
    return 0    
        
def base64stego():
    f = open("flag.txt","rb")
    lines = f.readlines()
    x = ''
    for line in lines:
        l = str(line, encoding = "utf-8").strip()
        if l[-1] == '=':
            if l[-2] == '=':
                x += bin(base64value(l[-3]))[-4:]
            else:
                x += bin(base64value(l[-2]))[-2:]
    
    flag = ''
    for i in range(0, len(x), 8):
        flag += chr(int(x[i:i+8],2))
    print(flag)
    
if __name__ == '__main__':
    base64stego()

得到flag

find_me

考点:盲文隐写

解题:下载网页上的图片,简单查看一下属性,

应该是盲文隐写,解密盲文即可

文本加密为盲文,可自设密码|文本在线加密解密工具 (qqxiuzi.cn)

gakki

考点:字频统计

解题:打开附件,查看属性、010查看十六进制,发现含有rar文件,用binwalk提取,得到压缩包,再用密码爆破得到flag.txt,打开文件

大量无特征、无规律字符,联想到之前做过的字频统计,编写脚本如下

# 设置Python源文件的编码为UTF-8
# 作者:mochu7

# 定义一个包含大小写字母、数字以及特殊字符的字符串,用于后续匹配字符
alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()_+- =\\{\\}[]"

# 打开当前目录下的flag.txt文件,并读取其内容到字符串变量strings中
strings = open('./flag.txt').read()

# 初始化一个空字典result,用于存储每个字符及其在strings中出现的次数
result = {}

# 遍历alphabet中的每个字符
for i in alphabet:
    # 计算字符i在strings中出现的次数
    counts = strings.count(i)
    # 将字符转换为字符串格式,以便作为字典的键
    i = '{0}'.format(i)
    # 在字典result中为字符i设置对应的计数
    result[i] = counts

# 根据字符出现的次数对字典result进行降序排序,结果存储在res中
res = sorted(result.items(), key=lambda item: item[1], reverse=True)

# 遍历排序后的结果,打印每个字符及其出现的次数
for data in res:
    print(data)

# 再次遍历排序后的结果
for i in res:
    # 获取字符,由于i是一个元组,i[0]是字符本身
    flag = str(i[0])
    # 打印字符,但不换行,使用end=""保持在一行输出
    print(flag[0], end="")

解密得到flag

我有一只马里奥

考点:ntf命令

解题:[BUUCTF-MISC-SWPU2019]我有一只马里奥~sqltest-CSDN博客

我的方法,不知道为什么我运行出来和题解完全不同

于是我直接将文件后缀改成rar。

此时我才意识到可能是ntf,但是我这里都解压出来了直接查看即可

single dog

考点:aaencode颜表情解密

解题:下载附件,用010看看,发现端倪,用binwalk解出一个压缩包,打开里面的1.txt发现编码为颜表情编码

AAEncode加密/解密 – 一个工具箱 – 好用的在线工具都在这里! (atoolbox.net)

通过链接解密,得到下面的代码和flag

function a()
{
var a="SUCTF{happy double eleven}";
alert("双十一快乐");
}
a();

穿越时空的思念

考点:音频转莫斯

解题:下载附件,然后用Audacity打开,发现应该是被分成了两段摩斯密码

xxxxxxxxxx ..-. ----- ..--- ----. -... -.. -.... ..-. ..... ..... .---- .---- ...-- ----. . . -.. . -... ---.. . ....- ..... .- .---- --... ..... -... ----- --... ---.. -....

上面是前半段,第二段如下:

..-. ----- ..--- ----. -... -.. -.... ..-. .....

摩尔斯电码转换器:在线进行摩尔斯电码和英文字母的相互转换,可以把莫尔斯电码转换为英文字母,也可把英文字母转换为摩尔斯电码 (zhongguosou.com)

转换解密即可,记得转小写

伟大的侦探

考点:EBCDIC编码EBCDIC、ASCII与EBCDIC的关系及相互转化、福尔摩斯小人加密福尔摩斯破案——“跳舞小人”的暗号与密码

解题:打开附件,密码.txt可解压,misc文件夹需要解压密码,将密码.txt使用010 Editor打开,使用EBCDIC编码即可发现密码明文,在视图栏可找到

可以看到解压密码:

wllm_is_the_best_team!

然后返回附件压缩包解压misc文件夹,打开可以看到一堆小人图片,结合题目(伟大的侦探)判断为福尔摩斯小人加密

网上搜索根据密码表可解除flag,密码表如下:

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇