UNCTF2022-公开赛-MISC-部分WriteUp

1.magic_word-西南科技大学

  1. magic_word.docx后缀改成zip,然后解压,打开\word\document.xml
    请添加图片描述

  2. 复制这一段,必须向上图那样复制,不然末尾一段零宽字符会没复制上
    零宽网站:https://www.mzy0.com/ctftools/zerowidth1/
    UNCTF2022-公开赛-MISC-部分WriteUp_第1张图片

unctf{We1come_new_ctfer}


2.syslog-浙江师范大学

  1. 打开syslog,我搜索了几个关键字,key,password的时候,搜索出现了

UNCTF2022-公开赛-MISC-部分WriteUp_第2张图片

cGFzc3dvcmQgaXMgVTZudTJfaTNfYjNTdA== —> base64 —> password is U6nu2_i3_b3St

  1. 用密码解压flag.zip,得到flag:

unctf{N1_sH3_D0n9_L0g_dE!}


3.巨鱼-河南理工大学

  1. 打开fish.png,尾部有zip,我是复制然后粘贴出来的(foremost应该也可以)

UNCTF2022-公开赛-MISC-部分WriteUp_第3张图片

  1. 我的看图软件(ImageGlass)打不开图片,所以大概率宽高不对,crc32爆破一下。

UNCTF2022-公开赛-MISC-部分WriteUp_第4张图片
UNCTF2022-公开赛-MISC-部分WriteUp_第5张图片

  1. 打开图片

UNCTF2022-公开赛-MISC-部分WriteUp_第6张图片

  1. 用密码无所谓我会出手,解开之前尾部保存的zip文件,得到flag.txt, flagisnothere.zip

flag.txt:

UNCTF2022-公开赛-MISC-部分WriteUp_第7张图片

我提交了一下,是不对的。

  1. flagisnothere.zip是伪加密的,我用的ZipCenOp解开的。

请添加图片描述

pass.png:

UNCTF2022-公开赛-MISC-部分WriteUp_第8张图片

  1. 我用识图工具找了一下是六氯环己烷

UNCTF2022-公开赛-MISC-部分WriteUp_第9张图片

别名叫六六六,所以flag.pptx的打开密码就是666(当然也是试了好几次出来的)

  1. 我们要关闭文档保护,也就是不使用密码

UNCTF2022-公开赛-MISC-部分WriteUp_第10张图片
UNCTF2022-公开赛-MISC-部分WriteUp_第11张图片

上面密码留空,然后确定,文档的密码就没了。

  1. 修改后缀名为zip,然后解压,用vscode打开,ctrl+shift+f搜索unctf

UNCTF2022-公开赛-MISC-部分WriteUp_第12张图片

UNCTF{y0u_F1nd_1t!}


4.找得到我吗-闽南师范大学

  1. 找得到我吗.docx后缀名改成zip,解压。

  2. vscode搜索

UNCTF2022-公开赛-MISC-部分WriteUp_第13张图片

flag{You_find_me!}


5.社什么社-湖南警察学院

  1. 打开txt,放大缩小,弄到一个合适的情况后

  1. 结合出题人的位置湖南,加上古城。

UNCTF2022-公开赛-MISC-部分WriteUp_第14张图片

所以就是凤凰古城,然后md5,再大写。

UNCTF{4F0198127A45F66C07A5B1A2DDA8223C}


6.zhiyin-中国人民公安大学

  1. 解压后发现lanqiu.jpg打不开,那我们就先解决它。

UNCTF2022-公开赛-MISC-部分WriteUp_第15张图片

010editor打开一看就是reverse了,所以我们reverse一下就能回去,这个太简单了,我没写代码,你们不会的百度找个代码吧,我用的是自己的集合的那种脚本。

UNCTF2022-公开赛-MISC-部分WriteUp_第16张图片
得到关键字:Go_p1ay(注意是1不是l,我就被这个卡半天了)

  1. 010editor打开zhiyin.png,尾部明显的morse密码。

UNCTF2022-公开赛-MISC-部分WriteUp_第17张图片
UNCTF2022-公开赛-MISC-部分WriteUp_第18张图片

使用CyberChef,链接:https://ctf.mzy0.com/CyberChef3/

得到关键字:_UNC7F!!! —> 小写 —> _unc7f!!!(我就因为没有小写,然后解压不开flag.zip,卡了半天)

所以正确的密码是:Go_p1ay_unc7f!!!

  1. 解压flag.zip,得到flag:

flag{M1sic_1s_greAt}


7.清和fan-江西警察学院

UNCTF2022-公开赛-MISC-部分WriteUp_第19张图片

去哔哩哔哩搜索清和,第一个就是,它的内容刚刚好和手办有关系。

请添加图片描述

UNCTF2022-公开赛-MISC-部分WriteUp_第20张图片

所以解压密码为:

请添加图片描述

  1. MKM.png有lsb隐写,所以解压密码为:qq857488580,解压阿和的真实竟然身份是?.zip

UNCTF2022-公开赛-MISC-部分WriteUp_第21张图片

  1. 神秘电波.wav,打开一听就是rot36,再加上36s我更加确定,我使用的是MMSSTV

UNCTF2022-公开赛-MISC-部分WriteUp_第22张图片

又得到关键字:V@mpir3,解压flag.zip

  1. 打开flag.txt,这一看就是有零宽。

UNCTF2022-公开赛-MISC-部分WriteUp_第23张图片

  1. 零宽网站:https://www.mzy0.com/ctftools/zerowidth1/

UNCTF2022-公开赛-MISC-部分WriteUp_第24张图片

unctf{wha1e_wants_a_girlfriend_like_alicia}


8.芝麻开门-广东海洋大学

  1. 打开key.txt,找到最下面的a2V5MQ== —> base64 —> key1

请添加图片描述

  1. 在StegSolve观察了一下,明显有lsb,再加上给了密码,所以使用cloacked-pixel

请添加图片描述

  1. 打开out就是看到flag了

UNCTF2022-公开赛-MISC-部分WriteUp_第25张图片

flag{faf5bdd5-ba3d-11da-ad31-d33d75182f1b}

然后改一下格式:

UNCTF{faf5bdd5-ba3d-11da-ad31-d33d75182f1b}


9.In_the_Morse_Garden-陆军工程大学

  1. 打开In_the_Morse_Garden.pdf

UNCTF2022-公开赛-MISC-部分WriteUp_第26张图片

UNCTF{5L6d5Y+k5q+U5Y+k546b5Y2h5be05Y2h546b5Y2h5be05Y2hIOS+neWPpOavlOWPpOeOm +WNoeW3tOWNoSDnjpvljaHlt7TljaHkvp3lj6Tmr5Tlj6Qg5L6d5Y+k5q+U5Y+k5L6d5Y+k5q+U5Y+k5 46b5Y2h5be05Y2h546b5Y2h5be05Y2h5L6d5Y+k5q+U5Y+k546b5Y2h5be05Y2hIOS+neWPpOavlO WPpOeOm+WNoeW3tOWNoSDnjpvljaHlt7TljaHkvp3lj6Tmr5Tlj6Qg5L6d5Y+k5q+U5Y+k5L6d5Y+k 5q+U5Y+k546b5Y2h5be05Y2h546b5Y2h5be05Y2h5L6d5Y+k5q+U5Y+k546b5Y2h5be05Y2hIOeOm +WNoeW3tOWNoeeOm+WNoeW3tOWNoSDkvp3lj6Tmr5Tlj6TnjpvljaHlt7TljaEg546b5Y2h5be05Y 2h5L6d5Y+k5q+U5Y+k546b5Y2h5be05Y2hIOS+neWPpOavlOWPpOeOm+WNoeW3tOWNoSDkvp3 lj6Tmr5Tlj6Tkvp3lj6Tmr5Tlj6TnjpvljaHlt7TljaHnjpvljaHlt7TljaHkvp3lj6Tmr5Tlj6TnjpvljaHlt7TljaEg54 6b5Y2h5be05Y2h5L6d5Y+k5q+U5Y+k5L6d5Y+k5q+U5Y+k5L6d5Y+k5q+U5Y+kIOS+neWPpOavlOW PpOeOm+WNoeW3tOWNoSDnjpvljaHlt7TljaHkvp3lj6Tmr5Tlj6TnjpvljaHlt7TljaEg5L6d5Y+k5q+U5Y +k546b5Y2h5be05Y2hIOS+neWPpOavlOWPpOeOm+WNoeW3tOWNoSDkvp3lj6Tmr5Tlj6Tnjpvlja Hlt7TljaEg5L6d5Y+k5q+U5Y+k546b5Y2h5be05Y2hIOS+neWPpOavlOWPpOeOm+WNoeW3tOWN oSDnjpvljaHlt7TljaHkvp3lj6Tmr5Tlj6TnjpvljaHlt7TljaHkvp3lj6Tmr5Tlj6TnjpvljaHlt7TljaHnjpvljaHlt7T ljaE=}
  1. base64解码

UNCTF2022-公开赛-MISC-部分WriteUp_第27张图片

依古比古玛卡巴卡玛卡巴卡 依古比古玛卡巴卡 玛卡巴卡依古比古 依古比古依古比古玛卡巴卡玛卡巴卡依古比古玛卡巴卡 依古比古玛卡巴卡 玛卡巴卡依古比古 依古比古依古比古玛卡巴卡玛卡巴卡依古比古玛卡巴卡 玛卡巴卡玛卡巴卡 依古比古玛卡巴卡 玛卡巴卡依古比古玛卡巴卡 依古比古玛卡巴卡 依古比古依古比古玛卡巴卡玛卡巴卡依古比古玛卡巴卡 玛卡巴卡依古比古依古比古依古比古 依古比古玛卡巴卡 玛卡巴卡依古比古玛卡巴卡 依古比古玛卡巴卡 依古比古玛卡巴卡 依古比古玛卡巴卡 依古比古玛卡巴卡 依古比古玛卡巴卡 玛卡巴卡依古比古玛卡巴卡依古比古玛卡巴卡玛卡巴卡

根据题目的Morse的提示,所以这是摩斯密码。

摩斯密码在线网站:http://www.all-tool.cn/Tools/morse/

UNCTF2022-公开赛-MISC-部分WriteUp_第28张图片

UNCTF{WAN_AN_MAKA_BAKAAAAA!}


10.我小心海也绝非鳝类-中国计量大学现代科技学院

  1. 010editor打开我小心海也绝非鳝类.png,发现尾部base64字符串。

请添加图片描述

RUFTWUxTQg== —> base64 —> EASYLSB,得到关键信息:EASYLSB

UNCTF2022-公开赛-MISC-部分WriteUp_第29张图片

请添加图片描述

得到关键信息:flaginmd5

  1. 使用cloacked-pixel

请添加图片描述

  1. 得到out
8FA14CDD754F91CC6554C9E71929CCE72DB95E8E1A9267B7A1188556B2013B330CC175B9C0F1B6A831C399E269772661B2F5FF47436671B6E533D8DC3614845DF95B70FDC3088560732A5AC135644506F1290186A5D0B1CEAB27F4E77C0C5D68E1671797C52E15F763380B45E841EC322DB95E8E1A9267B7A1188556B2013B334A8A08F09D37B73795649038408B5F33D95679752134A2D9EB61DBD7B91C4BCC6F8F57715090DA2632453988D9A1501BE1671797C52E15F763380B45E841EC32B14A7B8059D9C055954C92674CE60032E358EFA489F58062F10DD7316B65649ED95679752134A2D9EB61DBD7B91C4BCCB14A7B8059D9C055954C92674CE600326F8F57715090DA2632453988D9A1501B865C0C0B4AB0E063E5CAA3387C1A874103C7C0ACE395D80182DB07AE2C30F0344A8A08F09D37B73795649038408B5F33CBB184DD8E05C9709E5DCAEDAA0495CF
  1. 根据提示md5,md5的话是32位

UNCTF2022-公开赛-MISC-部分WriteUp_第30张图片

out的文本内容能被32整除,所以大概率就是32位md5代表一个字符,和本次比赛的Crypto方向的md5-1,基本一模一样。写个python代码:

import string
import hashlib


# 1.create dic
dic = {hashlib.md5(i.encode()).hexdigest().upper(): i for i in string.printable}

with open("out.txt", "r") as f:
    data = f.read()

for i in range(0, len(data), 32):
    print(dic.get(data[i:i+32]), end="")

请添加图片描述

flag{welcome_to_misc}

改一下格式:

UNCTF{welcome_to_misc}


11.剥茧抽丝-内蒙古警察职业学院

这题我的wp应该是非常规解法,为什么是非常规,这个锅必须sublime text背!!!

  1. 1.txt可以看到是有零宽的

请添加图片描述

UNCTF2022-公开赛-MISC-部分WriteUp_第31张图片

很明显,我得到了乱码,所以这个地方我开始就没做出来。

  1. 我先来说出题人的正确想法:

UNCTF2022-公开赛-MISC-部分WriteUp_第32张图片

2.txt的crc32是1E153DBB,原本的1.txt的crc32是5CE71FFF,所以这两个内容肯定不相同,所以不能明文攻击。

但是,你只要自己新建一个文件,然后写上线索就在眼前,你能利用并找到flag吗

UNCTF2022-公开赛-MISC-部分WriteUp_第33张图片

现在crc32和文件里面的crc32一样了,现在可以用压缩攻击压缩然后明文攻击了。

  1. 说完出题人,现在说我的解法:

我为什么没有人出题人的解法呢?因为sublime text

首先,我复制了1.txt的内容到了1 - 副本.txt,然后我把能看见的零宽字符删掉了,也就下图这样:

UNCTF2022-公开赛-MISC-部分WriteUp_第34张图片

UNCTF2022-公开赛-MISC-部分WriteUp_第35张图片

crc32显示c5c55f26,所以我就没办法明文攻击了。

可能有人就好奇了,为什么你把零宽都删掉了,怎么crc32不一样啊,有没有一种可能,我根本就没把零宽字符删干净,我们把1 - 副本.txt复制到kali里面去。

UNCTF2022-公开赛-MISC-部分WriteUp_第36张图片

使用vim打开,你会发现还有一堆的零宽字符,所以说我们根本没有删干净,但是sublime text上面并没有显示零宽字符了!

所以我就没办法明文攻击,但是虽然不能攻击2.txt,但是我们可以攻击flag.zip。

为什么可以攻击flag.zip,这是因flag.zip的算法为ZipCrypto Store

UNCTF2022-公开赛-MISC-部分WriteUp_第37张图片

  1. 实现攻击的仓库是用的https://github.com/kimci86/bkcrack,不太会的可以看我之前的一个视频教程,戳我打开。

首先我构造了一个zip的文件尾部,但是我当时也没有把握能攻击出来,因为压缩文件如果有注释的话,那我百分比攻击不出来,有注释的话偏移就变了。(也就是以前在这个位置上,现在不在这个位置了)

UNCTF2022-公开赛-MISC-部分WriteUp_第38张图片

攻击命令如下:

请添加图片描述

-o 239是根据flag.zip的大小 - 22字节得到的。

-x 0 504B03041400这个是zip的文件头部。

可以看到成功得到了12字节的key。

请添加图片描述

修改压缩包的密码为easy

  1. 使用密码easy去解压,得到一个新的flag.zip,这里面就是flag了,但是需要密码

请添加图片描述

这个压缩包的密码就在一开始零宽里面。

请添加图片描述

然后我们下载解密后的隐藏数据,使用sublime text打开

UNCTF2022-公开赛-MISC-部分WriteUp_第39张图片

密码:PAsS_w0rD

这个地方花了我很久时间,因为我是真的忘记了还可以隐藏二进制数据,因为上面的文本一直得不到有意义的文字,我滑动到了下面的窗口,然后我试了一下,果然是二进制数据。

解压新的flag.zip,得到flag:

unctf{d4a3a242-cd32-4dd5-bac6-84bdf13f527f}

改一下格式:

UNCTF{d4a3a242-cd32-4dd5-bac6-84bdf13f527f}


12.MY PICTURE-信阳师范

  1. Picture添加后缀zip,解压,得到两个文件:datflag.png

  2. dat用010editor打开乱码,所以我就用我的脚本试了一下,也就是检测文件头和文件尾的,出来了异或0x8e

请添加图片描述

这个时候就有人说了,那我没有你的脚本这题咋办呢??也好办!

你的电脑肯定有python吧,pip3 install xortool,pip3或者pip都可以,只要你能安装这个库到你的python3上就可以。

使用xortool.exe -c 00 dat

UNCTF2022-公开赛-MISC-部分WriteUp_第40张图片

UNCTF2022-公开赛-MISC-部分WriteUp_第41张图片

UNCTF2022-公开赛-MISC-部分WriteUp_第42张图片

这个0.out打开一看你会发现就是zip的了,这个xortool会自动帮你进行检测然后保存。

-c 00 一般软件或者文件使用, -c 20 一般是文本文件使用

  1. 我当时没有使用xortool,所以我使用010editor对文件进行二进制异或,操作如下:

UNCTF2022-公开赛-MISC-部分WriteUp_第43张图片

UNCTF2022-公开赛-MISC-部分WriteUp_第44张图片

无符号字节,操作数8e,十六进制,确定。

UNCTF2022-公开赛-MISC-部分WriteUp_第45张图片

一看就是zip了,修改备注为zip,没有密码,解压得到encode.py

from PIL import Image as im

flag = im.open('flag.jpg','r')
l,h=flag.size
puzzle=im.new('RGB',(h,l))
print(puzzle)
for i in range(l):
    for j in range(h):
        r,g,b=flag.getpixel((i,j))
        r=r^g
        g=g^b
        b=b^r
        puzzle.putpixel(((i*787+j)//1200,(i*787+j)%1200),(b,g,r))
puzzle.save('flag.png')
flag.close()
puzzle.close()

根据加密流程写一个解密:

from PIL import Image


img = Image.open("flag.png")

with open("bgr.txt", "w") as f:
    for x in range(img.width):
        for y in range(img.height):
            b, g, r = img.getpixel((x, y))
            b = b ^ r
            g = g ^ b
            r = r ^ g
            f.write(f"{b} {g} {r}" + "\n")

如果你实在不知道为什么要向上面那样写解密脚本:

# 这是刚刚的加密,解密的脚本
r, g, b = 3, 4, 5

# 加密
r = r ^ g
g = g ^ b
b = b ^ r
print(r, g, b)

# 解密
b = b ^ r
g = g ^ b
r = r ^ g
print(r, g, b)
运行结果:
7 1 2
3 4 5

所以说有时候加密流程搞不懂,你就写个demo试试。

运行解密脚本后,会得到一个bgr.txt文件

运行该脚本之前,手动新建一个images的文件夹,因为我这个脚本会把图片写入的images的文件夹里面。

import cv2
import numpy as np


with open("bgr.txt", "r") as f:
    data = f.read().splitlines()

img = []
for line in data:
    img.append(list(map(lambda x: int(x), line.split(" "))))
img = np.array(img, dtype=np.uint8)

for width, height in {1: 944400, 2: 472200, 3: 314800, 4: 236100, 5: 188880, 6: 157400, 8: 118050, 10: 94440, 12: 78700, 15: 62960, 16: 59025, 20: 47220, 24: 39350, 25: 37776, 30: 31480, 40: 23610, 48: 19675, 50: 18888, 60: 15740, 75: 12592, 80: 11805, 100: 9444, 120: 7870, 150: 6296, 200: 4722, 240: 3935, 300: 3148, 400: 2361, 600: 1574, 787: 1200, 1200: 787, 1574: 600, 2361: 400, 3148: 300, 3935: 240, 4722: 200, 6296: 150, 7870: 120, 9444: 100, 11805: 80, 12592: 75, 15740: 60, 18888: 50, 19675: 48, 23610: 40, 31480: 30, 37776: 25, 39350: 24, 47220: 20, 59025: 16, 62960: 15, 78700: 12, 94440: 10, 118050: 8, 157400: 6, 188880: 5, 236100: 4, 314800: 3, 472200: 2}.items():
    img = img.reshape(height, width, 3)
    cv2.imwrite(f"./images/{width}_{height}.png", img)

images目录下面出现了很多的图片了

UNCTF2022-公开赛-MISC-部分WriteUp_第46张图片

我们肉眼可以看到1200x787.png是一张完美的图片,我们打开后,左转90°,再垂直翻转一下,就得到了flag。

UNCTF2022-公开赛-MISC-部分WriteUp_第47张图片

UNCTF{93bb442f-2a76-2b6f-c42f-c2297f5fdaf9}

补充:

我是如何得到那些宽高的?

bgr.txt 一共有944400个像素点,我们就找能被整除的数,也就是假设一个width,如果944400 % width == 0,那你们能被整除,那它们就有可能是真实的宽度和高度。

UNCTF2022-公开赛-MISC-部分WriteUp_第48张图片

'''
Example:
    N = 61366

输出:
    {1: 61366, 2: 30683, 61: 1006, 122: 503, 503: 122, 1006: 61, 30683: 2}

    {X1: Y1, X2: Y2, ..., Xn: Yn}
'''


import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-t', type=int, default=None, required=True,
                    help='输入数字')
args  = parser.parse_args()


N = args.t
ret = {X: int(N / X) for X in range(1, N) if N % X == 0}

print(f"一共有 {len(ret)} 种情况:")
print(ret)

请添加图片描述


13.CatchJerry-华中科技大学

题干:
Tom和Jerry是一对欢喜冤家,这天Jerry偷走了芝士,Tom需要把他抓回来。
Jerry一会跳到屏幕上,一会跳到键盘上,Tom很是头晕。
你能帮助Tom看清Jerry的踪迹吗?
说明:
flag内容由若干大写英文单词组成,单词间以"_"间隔,flag格式:UNCTF{解出的字符串}
  1. 下载文件后,得到了一个流量包,打开分析了一下基本都是usb流量。
过滤命令:tshark.exe -r .\CatchJerry.pcapng -Y "usbhid.data" -T fields -e usbhid.data > out.txt

out.txt:

0000000000000000
0000010000000100
0000010000000100
0000020000000200
0000010000000100
0000020000000200
...

使用代码把这个数据转换为鼠标的坐标:

with open("out.txt", "r") as f:
    keys = f.read().splitlines()

with open("LEFT.txt", "w") as left, open("RIGHT.txt", "w") as right, open("ALL.txt", "w") as all:
    posx, posy = 0, 0
    for line in keys:
        x = int(line[2:4], 16)
        y = int(line[5:7], 16)
        if x > 127:
            x -= 256
        if y > 115:
            y -= 256
        posx += x
        posy += y
        # 1 for left , 2 for right , 0 for nothing
        btn_flag = int(line[:2], 16)
        if btn_flag == 1:  # 1 代表左键,2代表右键
            left.write(f'{posx} {str(-posy)}' + '\n')
        elif btn_flag == 2:
            right.write(f'{posx} {str(-posy)}' + '\n')

        all.write(f'{posx} {str(-posy)}' + '\n')

得到3个文件分别是ALL.TXT, LEFT.txt, RIGHT.txtRIGHT.txt没有内容,也就是说没有右键的流量。

复制LEFT.txt到kali中,安装gnuplot,不会安装的百度一下。

UNCTF2022-公开赛-MISC-部分WriteUp_第49张图片

UNCTF2022-公开赛-MISC-部分WriteUp_第50张图片

得到关键字:TOMJERRYFRIENDS

根据题干所以还有flag在键盘流量里面,但是我们如果在wireshark中过滤器用usb.capdata,你会发现没有任何流量,所以说键盘的流量也在usbhid.data里面。

根据 USB协议数据部分在Leftover Capture Data域中,数据长度为八个字节,刚好所有数据都是八字节。
击键信息集中在第3个字节,每次击键都会产生一个数据包。
所以下面的代码就是读取第3个字节,然后输出键盘按键的信息。
mappings = { 0x04:"A",  0x05:"B",  0x06:"C", 0x07:"D", 0x08:"E", 0x09:"F", 0x0A:"G",  0x0B:"H", 0x0C:"I",  0x0D:"J", 0x0E:"K", 0x0F:"L", 0x10:"M", 0x11:"N",0x12:"O",  0x13:"P", 0x14:"Q", 0x15:"R", 0x16:"S", 0x17:"T", 0x18:"U",0x19:"V", 0x1A:"W", 0x1B:"X", 0x1C:"Y", 0x1D:"Z", 0x1E:"1", 0x1F:"2", 0x20:"3", 0x21:"4", 0x22:"5",  0x23:"6", 0x24:"7", 0x25:"8", 0x26:"9", 0x27:"0", 0x28:"\n", 0x2a:"[DEL]",  0X2B:"    ", 0x2C:" ",  0x2D:"-", 0x2E:"=", 0x2F:"[",  0x30:"]",  0x31:"\\", 0x32:"~", 0x33:";",  0x34:"'", 0x36:",",  0x37:"." }

nums = []
with open('out.txt', "r") as f:
    data = f.read().splitlines()

for i in data:
    num = int(i[4:6], 16)
    if num in mappings:
        print(mappings[num], end="")

请添加图片描述

得到关键字:ANDBEST

所以flag为:

UNCTF{TOM_AND_JERRY_BEST_FRIENDS}


14.贝斯家族的侵略-中国地质大学武汉

提示1:如果明文攻击失败,尝试使用bandzip
提示2:会动的鼠标
  1. 使用bandzip,极限压缩然后明文攻击。

UNCTF2022-公开赛-MISC-部分WriteUp_第51张图片

得到密码:b4s31sN1ce

UNCTF2022-公开赛-MISC-部分WriteUp_第52张图片

  1. 解压文件,打开flag的文件

UNCTF2022-公开赛-MISC-部分WriteUp_第53张图片

一堆base64,base64隐写了,用我的软件也可以,因为软件偷懒没写多线程,然后这个base64文本又比较多,所以会出现卡死,但是并不是真的死了,需要稍微等一会,Github链接:https://github.com/Byxs20/Base64-Tools,打开后在右边的Release下载。(目前最新版本已经增加多线程,但是由于这个base64文本40mb,文本添加到输出框的时候还是会有点小卡顿,请等一会儿!)

UNCTF2022-公开赛-MISC-部分WriteUp_第54张图片

复制下面的然后粘贴到CyberChef上面

UNCTF2022-公开赛-MISC-部分WriteUp_第55张图片

然后保存这个文件保存下来

这个时候,就开始难起来了,Macro翻译是宏,.mrd这个格式找了半天也没找到啥软件。

不过我的思路就是肯定是一款软件,而且他是鼠标宏的,因为提示2:会动的鼠标,鼠标和宏一起,就是鼠标宏,鼠标宏才会动,鼠标是不会莫名其妙的移动的。

现在就是必须要找到那款软件。

最终下载了一款叫MacroRecorder的软件,官网链接:https://www.dcode.fr/solveur-sudoku

UNCTF2022-公开赛-MISC-部分WriteUp_第56张图片

请添加图片描述

打开Macro.mrd

UNCTF2022-公开赛-MISC-部分WriteUp_第57张图片

这个时候打开画图软件,点一下Play

UNCTF2022-公开赛-MISC-部分WriteUp_第58张图片

UNCTF2022-公开赛-MISC-部分WriteUp_第59张图片

你的鼠标就会变成移动的鼠标喽~嘎嘎乱动

UNCTF{b4s3_1s_v3ry_g0od!!}


15.峰回路转-内蒙古警察职业学院

这个时候距离比赛还有4小时左右,我一觉睡醒,这题0解变成2解,我一看就知道排名掉了,果然20名开外,然后我就硬肝这题了,还好肝出来了!

提示1:带密码的eye
  1. 这两个文件,肯定是可以crc32爆破的,我用的是我开源项目:Byxs20/zip-crc-tools

请添加图片描述

如果使用我的项目的话,需要手动去添加一些字符集,添加字符集,才可被爆破出来,不然爆破不出来;另外这个crc32的项目也是需要手动下载的,详细看我github项目的食用教程!

UNCTF2022-公开赛-MISC-部分WriteUp_第60张图片

配置好后,运行效果如下:

UNCTF2022-公开赛-MISC-部分WriteUp_第61张图片

2.txt对应W0RD3.txt对应P@Ss,组合一起就是W0RDP@Ss,去解压这个zip,没成功。

然后我把顺序换了一下,使用P@SsW0RD这个密码解压就成功了!

  1. 这个图片的隐写完全就是多尝试了,我也是试了好久。

UNCTF2022-公开赛-MISC-部分WriteUp_第62张图片

为什么要这样?因为bmp里面没有密码可以更改了,而且提示是带密码的eye,但是bmp就没有密码修改的地方,所以我想起来了之前bugku做的一道题目,就是用了上面的手段,题目叫什么我忘记了。

所以我就各种尝试,最后试出来了:Image quality: normal,Type:AES256,Key:P@SsW0RD

  1. 这一步的时候,flag.txt是加密的,而看好你.jpg是没有加密的。

请添加图片描述

  1. 大胆猜测伪加密,直接010editor改了一下

UNCTF2022-公开赛-MISC-部分WriteUp_第63张图片

UNCTF2022-公开赛-MISC-部分WriteUp_第64张图片

  1. 现在一看就没有密码了吧

UNCTF2022-公开赛-MISC-部分WriteUp_第65张图片

  1. flag.txt内容如下:
3(%2 .V%QSQTP KRPV_K" 'RKPWS KWQ%Q'W$QWPS".

还有一张图片看好你.jpg

UNCTF2022-公开赛-MISC-部分WriteUp_第66张图片

  1. 我还以为还有隐写,试了很多工具,试了3(%2 .V%QSQTP KRPV_K" 'RKPWS KWQ%Q'W$QWPS".P@SsW0RD作为密码,都没成功,又卡住了。
  2. 我就试了rot47甚至在cyberchef中各种尝试

UNCTF2022-公开赛-MISC-部分WriteUp_第67张图片

  1. 我也试过xortool,不太行,可能是因为这个的字符太少了;最后原来还是xor。

UNCTF2022-公开赛-MISC-部分WriteUp_第68张图片

UNCTFH0C75726F-4609-DFA4-615F-17C7A1B7165DH

  1. 这个一看就是uuid生成的flag,根据uuid的格式8-4-4-4-12,很明显就能知道,需要替换那两个英文字符喽!
    UNCTF2022-公开赛-MISC-部分WriteUp_第69张图片

UNCTF{0C75726F-4609-DFA4-615F-17C7A1B7165D}

你可能感兴趣的:(linux,安全,python)