更新日期:2022年12月6日

青少年CTF训练平台MIsc—Easy部分的WP
有错误请在评论区指出,万分感谢!!!

个人博客:https://www.st1ck4r.top/
(~ ̄▽ ̄)~

0x01 bear

考点:与熊论道解密

在线解密:http://hi.pcmoe.net/

0x02 百家姓

考点:百家姓编码,16进制转文本

使用百家姓在线解码解出来一段16进制文本

使用在线16进制转文本进行转换获得flag。

0x03 上号

考点:流量包分析,图片隐写

解压附件后得到一个流量包,打开并导出shanghao.zip

解压shanghao.zip,得到一张图片

使用010editor打开图片,翻到最下面发现字符串,猜测为图片隐写密码。

使用steghide工具将隐写的文件提取出来,即可获得flag。

0x04 17insanity

考点:文件读取

下载附件解压,打开文件即可获得flag。

0x05 17sanity

考点:文件读取

跟上题一样。

0x06 老师说了小明什么?

考点:压缩包密码爆破,伪加密,新佛曰,base64,base32,16进制转文本,凯撒密码,密码字典生成,图片隐写

提示密码为生日,使用压缩包密码爆破工具破解。

解压获得flag1,flag2.zip和flag3.zip

将flag2.zip用010editor打开,修改下面两处数字,去除压缩包伪加密。

解压flag2.zip,获得两个文本。

将flag2.txt进行新佛曰解密

接着依次进行base64,base32,16进制转文本获得第二段flag。

将密码.txt进行凯撒密码解密。

在位移4处获得正确密文。

使用python脚本生成压缩包密码字典。

for i in range(1000):if i<10:i = '00'+str(i)elif 10<=i and i<100:i ='0'+str(i)else:i=str(i)with open('1.txt', 'a') as f:f.write('qsnctf'+i+"\n")f.close()

使用字典进行爆破flag3.zip。

解压后为一张图片,

使用010editor打开,发现压缩包。

将图片后缀改为zip,然后解压打开获得flag3,将三段flag拼起来提交即可。(其实在我打码的地方就能看到flag3,这步就当走个流程)。

0x07 签到

考点:F12

f12查看源代码看到加密文本。

base64解两次码获得flag。

0x08 八卦迷宫

考点:迷宫

将附件解压,得到一张迷宫的图片,用画图工具手工连接,然后将路上的图表和字相对应。

按顺序打出,然后根据题目要求换成全拼,加上图片里的前缀cazy{}提交即可。

0x09 西安加油

考点:流量分析,base64,base64转换binary,拼图

下载附件用wireshark打开流量包,选择导出http对象,按大小排序后可以看到一个格外大的txt文本。

保存后打开发现是base64,在网站进行解码发现是一个压缩包。

将文本导入winhex,运用脚本转换为zip文件。

将zip文件解压得到十几张图片。

使用PS拼图得到flag(这里拿Montage(蒙太奇)好像也能拼,但是我太菜了拼了好几次都成没成功,只能采取笨办法了)。

附上一张原图(希望疫情能早点结束):

0x10 表情包

考点:文件属性查看

下载附件解压后得到十几张末心心P的表情包(?),挨个查看附件属性,就能找到flag(提示:跟Flag有关哦)。

0x11 欢迎

考点:拼图

折磨!!!!直接放原图(某次群聊打电话的截图):

0x12 Attack

考点:流量取证,mimikatz

先对流量包进行分离,得到一个加密的压缩包,提示是administrator的秘密

猜测需要得到administrator的密码,重新分析流量包,导出http对象,将最大的bmp文件导出。

  • Tips:dmp文件是windows系统中的错误转储文件,当Windows发生错误蓝屏的时候,系统将当前内存【含虚拟内存】中的数据直接写到文件中去,方便定位故障原因。

    (里面包含主机用户密码信息)

使用mimikatz分析.dmp文件,双击启动mimikatz.exe(x64(记得添加信任或者关闭杀毒软件,要不然就被杀掉了))并依次执行以下命令:

//提升权限
privilege::debug(网上抄的,不知道有啥用,我这里执行会报错,但是不影响下面的操作)
//载入dmp文件
sekurlsa::minidump lsass.dmp
//读取登陆密码
sekurlsa::logonpasswords full

将administrator的密码作为压缩包密码解压即可得到flag。

0x13 xcel破解

考点:基础文件操作

使用010editor打开往下翻翻就能看到flag…

0x14 FireFox Forensics

考点:火狐取证

太菜了不会做,WP奉上。https://blog.csdn.net/weixin_45791884/article/details/118707262

0x15 Game

考点:base32,LSB,3DES

解压src.zip,在index.html中找到base32数据,解码得到一个假的flag。

接下来分析那张png图片,用stegsolve打开在0通道发现base64数据

看到U2Fsd开头首先想到AES,但AES需要密钥,将之前解码得到的假flag当作密钥进行解密,并未解密出明文,转而想到DES,经过多次尝试,最终发现加密方式为3DES。

0x16 19sanity

考点:Markdown

打开md文件获得flag。

0x17 ez-usb

考点:USB流量分析

解压附件获得一个流量包和exe文件,exe文件打开需要输入密码,先跳过。用wireshark打开流量包,发现是usb流量。

根据题目描述,推测为键盘的usb流量,添加过滤条件**usb.src==“1.8.1”**进行过滤,, 然后导出特定分组并生成一个新的流量包。

使用大佬的usb流量分析脚本进行分析即可获得密码。

打开exe文件输入密码即可获得flag。

下面附上大佬的脚本(github项目地址):

#!/usr/bin/env pythonimport sys
import osDataFileName = "usb.dat"presses = []normalKeys = {"04":"a", "05":"b", "06":"c", "07":"d", "08":"e", "09":"f", "0a":"g", "0b":"h", "0c":"i", "0d":"j", "0e":"k", "0f":"l", "10":"m", "11":"n", "12":"o", "13":"p", "14":"q", "15":"r", "16":"s", "17":"t", "18":"u", "19":"v", "1a":"w", "1b":"x", "1c":"y", "1d":"z","1e":"1", "1f":"2", "20":"3", "21":"4", "22":"5", "23":"6","24":"7","25":"8","26":"9","27":"0","28":"<RET>","29":"<ESC>","2a":"<DEL>", "2b":"\t","2c":"<SPACE>","2d":"-","2e":"=","2f":"[","30":"]","31":"\\","32":"<NON>","33":";","34":"'","35":"<GA>","36":",","37":".","38":"/","39":"<CAP>","3a":"<F1>","3b":"<F2>", "3c":"<F3>","3d":"<F4>","3e":"<F5>","3f":"<F6>","40":"<F7>","41":"<F8>","42":"<F9>","43":"<F10>","44":"<F11>","45":"<F12>"}shiftKeys = {"04":"A", "05":"B", "06":"C", "07":"D", "08":"E", "09":"F", "0a":"G", "0b":"H", "0c":"I", "0d":"J", "0e":"K", "0f":"L", "10":"M", "11":"N", "12":"O", "13":"P", "14":"Q", "15":"R", "16":"S", "17":"T", "18":"U", "19":"V", "1a":"W", "1b":"X", "1c":"Y", "1d":"Z","1e":"!", "1f":"@", "20":"#", "21":"$", "22":"%", "23":"^","24":"&","25":"*","26":"(","27":")","28":"<RET>","29":"<ESC>","2a":"<DEL>", "2b":"\t","2c":"<SPACE>","2d":"_","2e":"+","2f":"{","30":"}","31":"|","32":"<NON>","33":"\"","34":":","35":"<GA>","36":"<","37":">","38":"?","39":"<CAP>","3a":"<F1>","3b":"<F2>", "3c":"<F3>","3d":"<F4>","3e":"<F5>","3f":"<F6>","40":"<F7>","41":"<F8>","42":"<F9>","43":"<F10>","44":"<F11>","45":"<F12>"}def main():# check argvif len(sys.argv) != 2:print("Usage : ")print("        python UsbKeyboardHacker.py data.pcap")print("Tips : ")print("        To use this python script , you must install the tshark first.")print("        You can use `sudo apt-get install tshark` to install it")print("Author : ")print("        WangYihang <wangyihanger@gmail.com>")print("        If you have any questions , please contact me by email.")print("        Thank you for using.")exit(1)# get argvpcapFilePath = sys.argv[1]# get data of pcapos.system("tshark -r %s -T fields -e usb.capdata 'usb.data_len == 8' > %s" % (pcapFilePath, DataFileName))# read datawith open(DataFileName, "r") as f:for line in f:presses.append(line[0:-1])# handleresult = ""for press in presses:if press == '':continueif ':' in press:Bytes = press.split(":")else:Bytes = [press[i:i+2] for i in range(0, len(press), 2)]if Bytes[0] == "00":if Bytes[2] != "00" and normalKeys.get(Bytes[2]):result += normalKeys[Bytes[2]]elif int(Bytes[0],16) & 0b10 or int(Bytes[0],16) & 0b100000: # shift key is pressed.if Bytes[2] != "00" and normalKeys.get(Bytes[2]):result += shiftKeys[Bytes[2]]else:print("[-] Unknow Key : %s" % (Bytes[0]))print("[+] Found : %s" % (result))# clean the temp dataos.system("rm ./%s" % (DataFileName))if __name__ == "__main__":main()

0x18 Top1

考点:base64

把密文放在cyberchef上自动解密就出来了。

0x19 女神的朋友圈

考点:社工

第一层:

百度识图,获得酒店名称。

第二层:

依旧是百度识图,找到一篇文章,获得酒吧名

Tips:

​ 由于题目已经告诉我们密码为全英文大写,这里直接爆破也可以。

第三层:

在图片3.jpg的图片属性中可以看到经纬度。

根据图片的经纬度进行坐标反查(不需要很精细,取第一个数字即可)。

可得出拍摄地为鄂尔多斯市,换成拼音解压即可获得flag。

Tips:

​ 也可利用工具(例如LocaSpaceViewer)提取出图片精确的经纬度。

0x20 剑拔弩张的小红

考点:base64

base64解密后点击加群链接加群,在群文件里放着(真正的签到题!!!)。

欢迎加入青少年CTF:797842833(QQ群)

0x21 从尾看到头

考点:文件逆序,二维码批量扫描,base64,base64换表

下载附件得到一个压缩包,进行解压会报错,用010editor打开压缩包,发现文件头在末尾。

编写脚本进行逆序:

s=open("从尾到头.zip","rb").read()[::-1]
a=open("从尾到头1.zip","wb")
a.write(s)
a.close()

解压逆序后的压缩包,里面有三十多张二维码,手动或者编写脚本进行批量扫描:

import cv2
import pyzbar.pyzbar as pyzbarfor i in range(1,32):qrcode = cv2.imread(str(i)+'.png')data = pyzbar.decode(qrcode)[0].data.decode("utf-8")with open('qrcode.txt','a') as f:f.write(data)f.close()

查看文本发现为base64密文,进行解密得到一串意义不明的文本,先放到一边。

用010editor打开galf.zip文件,发现情况跟第一个压缩包情况一样都是逆序,复用之前的脚本,修复后解压。

发现需要密码,将之前放到一边的文本作为密码进行解压获得flag.txt,这时候提交显示flag错误,将flag中的内容进行解密得到真正的flag。

0x22 原sher

考点:压缩包密码爆破,图片隐写

解压需要密码,题目提示6位,盲猜密码为qsnctf(拿爆破工具也能爆出来)。

解压出一张图片,用010editor打开,修改图片高度,保存后在此查看图片,发现flag。

0x23 BASE64隐写

考点:base64隐写

解密脚本:

d='''STJsdVkyeDFaR1U4YVc5emRISmxZVzArQ2c9PQ1=
STJsdVkyeDFaR1U4YzNSeWFXNW5QZ289DQ==
STJsdVkyeDFaR1U4WTNOMGNtbHVaejRLDV==
STJsdVkyeDFaR1U4WTNOMFpHbHZQZ289DQ==
STJSbFptbHVaU0J0WVhodUlEazVPUW89Dd==
Q2c9PQ1=
ZFhOcGJtY2dibUZ1WlhOd1lXTmxJSE4wWkRzSw1=
Q2c9PQ0=
WTJoaGNpUmpZVnR0WVhodVhTd2dZMkpiYldGNGJsMDdDZz09DU==
Q2c9PQ1=
YVc1MElHTnRjQ2h6ZEhKcGJtY2dZU3dnYzNSeWFXNW5JR2lwQ2c9PQ2=
ZXdvPQ1=
SUNBZ3lHbG1LR3V1YzJsNlpTZ3BJRDRnWWk1emFYcGxLQ2twQ2c9PQ3=
SUNBZ0lDbWdJb0J5WlhSMWNtNGdNVHNLDb==
SUNBZ0lHVnNjMlVnYVdZb1lTNXphWHBsS0NrZ1BDQmlMbk5wZW1Vb0tTa0sN
SUNBZ0lDQWdJQ0J5WlhSMWNtNGdMVEU3Q2c9PQ0=
SUNBZ0lHVnNjMlVLDd==
SUNBZ0lIc0sN
SUNBZ0lDQWdJQ0JtYjNJb2FXNTBJR2tnUFNBd095QnBJRHdnWVM1emFYcGxLQ2s3SUdrckt5a0sN
SUNBZ2lDQWdJQ2I3Q2c9PQ2=
SUNBZ1lDQWdJQ1FnSUNBZ2FXWW9ZVnRwWFNBOElHSmJhVjBwQ2c9PQ1=
SUNBZ0lDYWdJY0FnSUNBZ0lDYWdJSEpsZEhWeWJpYXRNVHNLDY==
SUNBZ1lDQWdJQ1FnSUNBZ2FXWW9ZVnRwWFNBK1lHSmJhVjBwQ2c9PQ1=
SUNBZ0lDXWdJX0FnSUNBZ0lDXWdJSEpsZEhWeWJpXXhPd289DX==
SUNBZ0lDQWdJQ0I5Q2c9PQ0=
SUNBZ0lDdWdJd0J5WlhSMWNtNGdNRHNLDd==
SUNBZ0lIMEsN
ZlFvPQ2=
Q2c9PQ1=
ZG05cFpDQnlaWE5sZEdFb2MzUnlhVzVuSUdFcENnPT0N
ZXdvPQ1=
SUNBZ1lHMWxiWE5sZENoallTd3dMSE5wZW1WdlppaGpZU2twT3dvPQ1=
SUNBZ2lHWnZjaWhwYm5RZ2FTQTlJREE3SUdrZ1BDQmhMbk5wZW1Vb2tUc2dhU3NyS1FvPQ2=
SUNBZ0lIc0sN
SUNBZ0lDQWdJQ0JqWVZ0cFhTQTlJR0ZiWVM1emFYcGxLQ2t0TVMxcFhTQXRJQ2N3SnpzSw0=
SUNBZ0lIMEsN
ZlFvPQ2=
Q2c9PQ0=
ZG05cFpDQnlaWE5sZEdJb2MzUnlhVzVuSUdJcENnPT0N
ZXdvPQ3=
SUNBZ1lHMWxiWE5sZENoallpd3dMSE5wZW1WdlppaGpZaWtwT3dvPQ1=
SUNBZ0lHWnZjaWhwYm5RZ2FTQTlJREE3SUdrZ1BDQmlMbk5wZW1Vb0tUc2dhU3NyS1FvPQ0=
SUNBZ0lIc0sN
SUNBZ1lDQWdJQ1JqWWx1cFhTQTlJR1piWWk1emFYcGxLQ2t1TVMxcFhTQXRJQ2N3SnpzSw1=
SUNBZ1lDQWdJQ1F2TDNCeWFXNTBaaWdpSldRaUxHTmlXMmxkS1RzSw1=
SUNBZ0lIMEsN
ZlFvPQ3=
Q2c9PQ3=
YzNSeWFXNW5JR1ZrWkNoemRISnBibWNnWVN3Z2MzUnlhVzVuSUdJcEx5L2xpcURtczVVSw1=
ZXdvPQ2=
SUNBZ0lISmxjMlYwWVNoaEtUc3ZMK2FLaXVhdmorUzRnT1M5amVXdG1PZWFoT1d0bCtlc3B1V1BtT2FJa09hVnNPV3RseXpsdWJia3VKVG1pb3JtbGJEbnU0VGxqNDNvdjRmbW5hWGt2ci9rdW83bGtJN3BuYUxrdUkzbGtJemt2WTNtbGJEbm03amxpcUFLDW==
SUNBZ0lISmxjMlYwWWloaUtUc0sN
SUNBZ0lHWnZjaWhwYm5RZ2FTTTlJREE3SUdrZ1BDTnRZWGh1T3lCcEt5c3BDZz09DT==
SUNBZ0lIc0sN
SUNBZ0lDQWdJQ0JqWVZ0cFhTQTlJR05oVzJsZElDc2dZMkpiYVYwN0NnPT0N
SUNBZ0lDQWdJQ0JwWmloallWdHBYU0ErUFNBeUtYc0sN
SUNBZ0lDTWdJT0FnSUNBZ1kyRmJhU3N4WFNBclBTTXhPd289DT==
SUNBZ0lDQWdJQ0FnSUNBZ1kyRmJhVjBnTFQwZ01qc0sN
SUNBZ0lDQWdJQ0I5Q2c9PQ0=
SUNBZ0lIMEsN
SUNBZ0lHSnZiMndnWm14aFp5QTlJSFJ5ZFdVN0NnPT0N
SUNBZ3lITjBjbWx1WnlCaklEMGdJaUk3Q2c9PQ3=
SUNBZ0lHWnZjaWhwYm5RZ2FTQTlJRzFoZUc0Z0xTQXhPeUJwSUQ0OUlEQTdJR2t0TFNrSw0=
SUNBZ0lIc0sN
SUNBZ0lDQWdJQ0JwWmlobWJHRm5JQ1ltSUdOaFcybGRJRDA5SURBcENnPT0N
SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVkR2x1ZFdVN0NnPT0N
SUNBZ0lDQWdJQ0JwWmloallWdHBYU0FoUFNBd0tRbz0N
SUNBZ0lDcWdJc0FnSUNBZ1pteGhaeUE5SUdaaGJITmxPd289Dc==
SUNBZ2lDQWdJQ2JqSUNzOUlDaGpZVnRwWFNBcklDY3dKeWs3Q2c9PQ2=
SUNBZ0lDQWdJQ0F2TDNCeWFXNTBaaWdpSldRaUxHTmhXMmxkS1RzSw0=
SUNBZ0lIMEsN
SUNBZ0lHbG1LR1pzWVdjcENnPT0N
SUNBZ1lDQWdJQ1J5WlhSMWNtNGdJakFpT3dvPQ1=
SUNBZ0lHVnNjMlVLDX==
SUNBZ0lDdWdJd0J5WlhSMWNtNGdZenNLDd==
ZlFvPQ0=
Q2c9PQ0=
YzNSeWFXNW5JRzFwYm5Vb2MzUnlhVzVuSUdFc0lITjBjbWx1WnlCaUtTOHY1WWVQNXJPVkNnPT0N
ZXdvPQ0=
SUNBZ0lHbHVkQ0J6YVdkdUlEMGdNRHNLDQ==
SUNBZ0lHbG1LR050Y0NoaExDQmlLU0E5UFNBdE1Ta3ZMMkhrdUszbHVwVG9yNlhsclpqb3ZvUGxwS2ZubW9UcGdxUGt1S3JtbGJBSw0=
SUNBZ0lIc0sN
SUNBZ0lDQWdJQ0J6YVdkdUlEMGdNVHNLDQ==
SUNBZ0lDQWdJQ0J6ZEhKcGJtY2dkR1Z0Y0NBOUlHRTdDZz09DQ==
SUNBZ0lDQWdJQ0JoSUQwZ1lqc0sN
SUNBZ0lDQWdJQ0JpSUQwZ2RHVnRjRHNLDQ==
SUNBZ0lIMEsN
SUNBZ0lISmxjMlYwWVNoaEtUc0sN
SUNBZ0lISmxjMlYwWWloaUtUc0sN
SUNBZ0lHWnZjaWhwYm5RZ2FTQTlJREE3SUdrZ1BDQnRZWGh1T3lCcEt5c3BDZz09DQ==
SUNBZ0lIc0sN
SUNBZ0lDQWdJQ0JwWmloallWdHBYU0E4SUdOaVcybGRLWHNLDQ==
SUNBZ0lDQWdJQ0FnSUNBZ1kyRmJhU3N4WFNBdFBTQXhPd289DQ==
SUNBZ0lDQWdJQ0FnSUNBZ1kyRmJhVjBnS3owZ01qc0sN
SUNBZ0lDQWdJQ0I5Q2c9PQ0=
SUNBZ0lDQWdJQ0JqWVZ0cFhTQTlJR05oVzJsZElDMGdZMkpiYVYwN0NnPT0N
SUNBZ0lIMEsN
SUNBZ0lHSnZiMndnWm14aFp5QTlJSFJ5ZFdVN0NnPT0N
SUNBZ0lITjBjbWx1WnlCa0lEMGdJaUk3Q2c9PQ0=
SUNBZ0lHWnZjaWhwYm5RZ2FTQTlJRzFoZUc0Z0xTQXhPeUJwSUQ0OUlEQTdJR2t0TFNrSw0=
SUNBZ0lIc0sN
SUNBZ0lDQWdJQ0JwWmlobWJHRm5JQ1ltSUdOaFcybGRJRDA5SURBcENnPT0N
SUNBZ0lDQWdJQ0FnSUNBZ1kyOXVkR2x1ZFdVN0NnPT0N
SUNBZ0lDQWdJQ0JwWmloallWdHBYU0FoUFNBd0tRbz0N
SUNBZ0lDQWdJQ0FnSUNBZ1pteGhaeUE5SUdaaGJITmxPd289DQ==
SUNBZ0lDQWdJQ0JrSUNzOUlDaGpZVnRwWFNBcklDY3dKeWs3Q2c9PQ0=
SUNBZ0lDQWdJQ0F2TDNCeWFXNTBaaWdpSldRaUxHTmhXMmxkS1RzSw0=
SUNBZ0lIMEsN
SUNBZ0lHbG1LR1pzWVdjcENnPT0N
SUNBZ0lDQWdJQ0J5WlhSMWNtNGdJakFpT3dvPQ0=
SUNBZ0lHVnNjMlVLDQ==
SUNBZ0lDQWdJQ0J5WlhSMWNtNGdaRHNLDQ==
ZlFvPQ0=
Q2c9PQ0=
YzNSeWFXNW5JRzExYkNoemRISnBibWNnZUN3Z2MzUnlhVzVuSUhrcEx5OXo1TGk2NTZ5bTVZKzM1TDJOQ2c9PQ0=
ZXdvPQ0=
SUNBZ0lHbHVkQ0JzWlc1NElEMGdlQzV6YVhwbEtDazdDZz09DQ==
SUNBZ0lHbHVkQ0JzWlc1NUlEMGdlUzV6YVhwbEtDazdDZz09DQ==
SUNBZ0lHbG1LR3hsYm5nZ1BUMGdNU2tLDQ==
SUNBZ0lIc0sN
SUNBZ0lDQWdJQ0F2TDJOdmRYUThQSGc4UENJZ0lDQWlQRHg1UER4bGJtUnNPd289DQ==
SUNBZ0lDQWdJQ0JwWmloNElEMDlJQ0l4SWlBbUppQjVJRDA5SUNJeElpa0sN
SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNJeElqc0sN
SUNBZ0lDQWdJQ0JsYkhObENnPT0N
SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUNJd0lpQTdDZz09DQ==
SUNBZ0lIMEsN
Q2c9PQ0=
SUNBZ0lDOHZjSEpwYm5SbUtDSWxaQzB0SldSY2JpSXNiR1Z1ZUN4c1pXNTVLVHNLDQ==
Q2c9PQ0=
SUNBZ0lITjBjbWx1WnlCaExDQmlMQ0JqTEdRN0NnPT0N
SUNBZ0lHRWdQU0I0TG5OMVluTjBjaWd3TENCc1pXNTRMeklwT3dvPQ0=
SUNBZ0lHSWdQU0I0TG5OMVluTjBjaWhzWlc1NEx6SXNJR3hsYm5ndk1pazdDZz09DQ==
SUNBZ0lHTWdQU0I1TG5OMVluTjBjaWd3TENCc1pXNTVMeklwT3dvPQ0=
SUNBZ0lHUWdQU0I1TG5OMVluTjBjaWhzWlc1NUx6SXNJR3hsYm5rdk1pazdDZz09DQ==
SUNBZ0lIQnlhVzUwWmlnaUpXUXRMU1ZrTFMwbFpDMHRKV1F0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMU1ZrTFNWa1hHNGlMR0V1YzJsNlpTZ3BMQ0JpTG5OcGVtVW9LU3dnWXk1emFYcGxLQ2tzSUdRdWMybDZaU2dwTENCNExuTnBlbVVvS1N3Z2VTNXphWHBsS0NrcE93bz0N
SUNBZ0lDOHZZMjkxZER3OGVEdzhJam9pUER4aFBEd2lJQ0k4UEdJOFBDSWdJanc4WXp3OElpQWlQRHhrUER4bGJtUnNPd289DQ==
SUNBZ0lITjBjbWx1WnlCaFl5QTlJRzExYkNoaExDQmpLVHNLDQ==
SUNBZ0lITjBjbWx1WnlCaVpDQTlJRzExYkNoaUxDQmtLVHNLDQ==
SUNBZ0lDOHZZMjkxZER3OGVEdzhJam9pUER4aFl6dzhJaUFpUER4aVpEdzhaVzVrYkRzSw0=
Q2c9PQ0=
SUNBZ0lITjBjbWx1WnlCaFlpQTlJRzFwYm5Vb1lTd2dZaWs3THk5aExXSUsN
SUNBZ0lITjBjbWx1WnlCalpDQTlJRzFwYm5Vb1pDd2dZeWs3Q2c9PQ0=
SUNBZ0lDOHZZMjkxZER3OGVEdzhJam9pUER4aFlqdzhJaUFpUER4alpEdzhaVzVrYkRzSw0=
Q2c9PQ0=
SUNBZ0lITjBjbWx1WnlCaFltTmtJRDBnYlhWc0tHRmlMQ0JqWkNrN0NnPT0N
SUNBZ0lDOHZZMjkxZER3OGVEdzhJam9pUER4aFltTmtQRHhsYm1Sc093bz0N
Q2c9PQ0=
SUNBZ0lITjBjbWx1WnlCbWFYSnpkQ0E5SUdGak93bz0N
SUNBZ0lHWnZjaWhwYm5RZ2FTQTlJREE3SUdrZ1BDQW9iR1Z1ZUNrN0lHa3JLeWtLDQ==
SUNBZ0lDQWdJQ0JtYVhKemRDQXJQU0FpTUNJN0NnPT0N
SUNBZ0lDOHZZMjkxZER3OFlXTThQQ0lnTFMwdExTMWhZeTB0TFMwZ0lqdzhabWx5YzNROFBHVnVaR3c3Q2c9PQ0=
Q2c9PQ0=
SUNBZ0lITjBjbWx1WnlCelpXTnZibVFnUFNCaFpHUW9ZV0pqWkN3Z1lXTXBPd289DQ==
SUNBZ0lITmxZMjl1WkNBOUlHRmtaQ2h6WldOdmJtUXNJR0prS1RzSw0=
SUNBZ0lHWnZjaWhwYm5RZ2FTQTlJREE3SUdrZ1BDQW9iR1Z1ZUM4eUtUc2dhU3NyS1FvPQ0=
SUNBZ0lDQWdJQ0J6WldOdmJtUWdLejBnSWpBaU93bz0N
Q2c9PQ0=
SUNBZ0lITjBjbWx1WnlCbWFXNGdQU0JoWkdRb1ptbHljM1FzSUhObFkyOXVaQ2s3Q2c9PQ0=
SUNBZ0lISmxkSFZ5YmlCaFpHUW9abWx1TENCaVpDazdDZz09DQ==
Q2c9PQ0=
ZlFvPQ0=
Q2c9PQ0=
YVc1MElHMWhhVzRvZG05cFpDa0sN
ZXdvPQ0=
SUNBZ0lITjBjbWx1WnlCNExDQjVPd289DQ==
SUNBZ0lIQnlhVzUwWmlnaTZLKzM2TDZUNVlXbDVMaWs1TGlxNUxxTTZMK2I1WWkyNXBXdzVhMlhPaUFpS1RzSw0=
SUNBZ0lHTnBiajQrZUQ0K2VUc0sN
SUNBZ0lITjBjbWx1WnlCaGJuTWdQU0J0ZFd3b2VDd2dlU2s3Q2c9PQ0=
SUNBZ0lHTnZkWFE4UEdGdWN6c0sN
ZlFvPQ0=
'''
e=d.splitlines()
binstr=""
base64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
for i in e :if i.find("==")>0:temp=bin((base64.find(i[-3])&15))[2:]#取倒数第3个字符,在base64找到对应的索引数(就是编码数),取低4位,再转换为二进制字符binstr=binstr + "0"*(4-len(temp))+temp #二进制字符补高位0后,连接字符到binstrelif i.find("=")>0:temp=bin((base64.find(i[-2])&3))[2:]#取倒数第2个字符,在base64找到对应的索引数(就是编码数),取低2位,再转换为二进制字符binstr=binstr + "0"*(2-len(temp))+temp #二进制字符补高位0后,连接字符到binstrstr=""
for i in range(0,len(binstr),8):str=str+chr(int(binstr[i:i+8],2)) #从左到右,每取8位转换为ascii字符,连接字符到字符串print(str)

0x24 key

考点:snow隐写

打开flag文本,全选后发现存在空白部分,猜测为snow隐写(在一同解压出来的那种图片的属性中也能找到提示为snow)。

用snow隐写工具进行解密,出现乱码,猜测需要密码。

返回文本仔细阅读,找到key1,再次进行解密,获得flag。

0x25 末心的礼物

考点:binwalk,pyc反编译

下载文件解压得到一个exe执行文件,但这题不是考的逆向。

将exe文件用binwalk进行分解,可以获得一个可疑的pyc文件。

利用在线网站进行pyc反编译即可获得flag。

0x26 明日方舟

考点:steghide隐写,base64换表

在图片属性中看到出题人名字。

使用steghide分析,密码为出题人名字。

获得flag.txt。

向下翻找,在1200行找到hint。

丢到cyberchef解密。

在Q群查看出题人账号。

0x27 英雄联盟

考点:社工,英雄联盟赛事

开局一张图,做题全靠搜。

经常看英雄联盟比赛应该知道这个女主持人骆歆,使用谷歌识图进行识别。

看日期知道是2021年8月13日的某一场比赛,百度搜索骆歆。

根据日期推断为夏季赛,继续搜索。

在常规赛第九周找到8月3日,在bilibili搜索该场比赛。

在8分17秒处看到该图片动作,确定前半个flag。

后面的就依次查看即可,在8月6日19:00的比赛上再次看到骆歆。

确定后半flag。

0x28 索马里海盗

考点:压缩包爆破,掩码攻击

和ctfshow的2022七夕杯Misc部分的海盗的密码题目类似(指除了压缩包密码不同以外其它都一样),可以直接搜索WP进行参考。

下载文件获得一个加密的压缩包,根据提示获得密码线索。

百度搜索索马里的ip。

使用archpr工具的掩码攻击进行爆破。

解压后获得一个flag.zip,点击查看提示压缩包损坏。

使用010Editor打开即可获得flag。

0x29 caesar

考点:凯撒密码

网站在线解密,位移数为1。

0x30 just_a_rar

考点:压缩包爆破

下载文件用archpr工具爆破密码。

解压后获得一张图片,查看图片属性获得flag。

0x31 EZjoanDaemen

考点:zip伪加密,snow隐写,docx文件隐写,lsb隐写,aes解密

下载题目压缩包,解压发现需要密码,使用010Editor打开,发现压缩包为伪加密。

修改01为00,解压这个压缩包,获得docx文件。

在末尾处发现空白行,猜测为snow隐写,将空白部分复制出来并保存为文本,使用snow工具进行解密。

获得aes_key,暂时没用。

将docx文档后缀改为zip并解压。

在word\media\images路径下发现一堆图片。

用Stegsolve工具打开一张图片,在最低有效位下发现密文。

根据之前找到的aes_key猜测为aes加密,使用在线网站进行解密。

获得一个字符f,接着依次解密前几张图片,结果为:flag{

编写批量提取解密脚本:

'''# @Author: https://github.com/librauee/Steganalysis/blob/master/LSB/get_info.py# @Date: 2022-12-02 16:08:22# @LastEditors: St1ck4r# @LastEditTime: 2022-12-02 17:13:07# @link: https://www.st1ck4r.top
'''from PIL import Image
from Crypto.Cipher import AES
import base64# aes密钥
password = b'welcome_to_misc!'# AES ECB模式解密
def aesecb(c):en_text = base64.b64decode(c) #需要加密的内容,bytes类型aes = AES.new(password,AES.MODE_ECB) #创建一个aes对象# AES.MODE_ECB 表示模式是ECB模式den_text = aes.decrypt(en_text) # 解密密文return den_text.decode().strip(b'\x00'.decode()) # den_text.decode():转化为str类型,strip(b'\x00'.decode()):去除末尾生成的\x00def mod(x,y): return x%ydef toasc(strr):return int(strr, 2)#le为所要提取的信息的长度,str1为加密载体图片的路径,str2为提取文件的保存路径
def func(le,str1,str2): b="" im = Image.open(str1)lenth = le*8width,height = im.size[0],im.size[1]count = 0for h in range(height): for w in range(width):#获得(w,h)点像素的值pixel = im.getpixel((w, h))#此处余3,依次从R、G、B三个颜色通道获得最低位的隐藏信息 if count%3==0:count+=1 b=b+str((mod(int(pixel[0]),2))) if count ==lenth:breakif count%3==1:count+=1b=b+str((mod(int(pixel[1]),2)))if count ==lenth:breakif count%3==2: count+=1b=b+str((mod(int(pixel[2]),2)))if count ==lenth:breakif count == lenth:break# 提取隐藏信息c=''for i in range(0,len(b),8):#以每8位为一组二进制,转换为十进制            stra = toasc(b[i:i+8]) #将转换后的十进制数视为ascii码,再转换为字符串写入到文件中#print((stra))c+=chr(stra)# 写入指定文件with open(str2,"a",encoding='utf-8') as f:f.write(aesecb(c))f.close()def main():   #文件长度 le = 24#含有隐藏信息的图片for i in range(1,167): new = "new_"+str(i)+".png" #信息提取出后所存放的文件get_info = "flag.txt"func(le,new,get_info)print("完成信息提取!")if __name__=='__main__':main()

获得base64加密的flag。

将flag的值经过6次base64解密即可获得最终flag。

0x32 好怪哦

考点:数据逆置,文件头修补,宽高隐写

下载文件解压获得一个压缩包,解压时提示损坏,使用010editor打开发现数据逆置。

编写修复脚本:

a = open('fuck.zip', 'rb')
aa = a.read()
aaa = aa[::-1]b = open('flag.zip', 'wb')
b.write(aaa)a.close()
b.close()

解压flag.zip文件,获得一张png图片,但是无法查看,使用010editor查看发现缺少文件头。

将png文件头(89 50 4e 47)补上去.

查看图片发现高度显示不正确。

修改图片高度(不用必须改正确,只要能把文字显示全即可)。

再次查看图片即可获得flag。

0x33 三体

考点:兽音解密,base58,16进制转字符,凯撒密码

根据题目提示猜测压缩包密码为《三体》的英文threebody,解压后获得flag密文,然后依次解密。

兽音解密

base58

16进制转字符

凯撒密码

0x34 excel骚操作

考点:excel,汉明码

懒得写了,直接看WP吧( ̄︶ ̄)

https://blog.csdn.net/qq_43871179/article/details/118310357

0x35 gakki

考点:文件分离、压缩包爆破,字频统计排序

下载文件解压出一张图片。

使用binwalk分离,得到一个加密压缩包。

使用archpr工具爆破密码。

解压获得加密文本,多次尝试解密无效后,猜测为字频排序,百度随便找个脚本修改运行即可。

list = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()_+- =\\{\\}[]"
cipher = open('./flag.txt').read()result = {}
for i in list:counts = cipher.count(i)i = '{0}'.format(i)result[i] = countsres = sorted(result.items(),key=lambda item:item[1],reverse=True)
for data in res:print(data)for i in res:flag = str(i[0])print(flag[0],end="")

0x36 再签到一次

青少年ctf论坛注册回复帖子即可。

0x37 Can_You_Find_Me

考点:图片隐写

010editor查看图片。

0x38 你会运算吗

考点:16进制位移,0宽隐写,steghide密码爆破

下载附件得到一张图片和一个需要密码的压缩包。

尝试打开图片,未果,使用010editor查看。

取反:

f=open("1.jpg",'rb')
f1=f.read()#二进制形式
with open('flag.jpg','wb') as f2:for i in f1:if i==0:f2.write(bytes([0x0]))#这里的b是int形式,要转换成bytes时,使用bytes(),且里面的内容需要加[]else:f2.write(bytes([0x100-i]))
f.close()
f2.close()

打开生成的图片,获得压缩包密码。

解压后获得两张图和一个txt文本。

3.jpg还是运用刚才的16进制取反脚本即可获得后半段flag。

查看txt文本,提示给出密码,但是需要爆破,猜测为大小写组合爆破。

推测图片2使用steghide隐写。

编写爆破脚本:

import osdef all_casings(input_string):if not input_string:yield""else:first = input_string[:1]if first.lower() == first.upper():for sub_casing in all_casings(input_string[1:]):yield first + sub_casingelse:for sub_casing in all_casings(input_string[1:]):yield first.lower() + sub_casingyield first.upper() + sub_casingif __name__ =='__main__':for x in all_casings("qsnctf"):os.system("steghide extract -sf 2.jpg -p "+x)print(x)

查看flag1.txt。

发现0宽隐写。

使用在线网站提取,获得前半部分flag。

0宽解密:http://330k.github.io/misc_tools/unicode_steganography.html


此文章不定时更新…

[青少年CTF]Misc—Easy by 周末相关推荐

  1. [青少年CTF]Crypto—Easy by 周末

    闲的没事写份wp(- ̄▽ ̄)- 个人博客:https://www.st1ck4r.top 0x01 一起下棋 考点:棋盘密码 在线解密:https://www.qqxiuzi.cn/bianma/qi ...

  2. [青少年CTF]-MISC WP(三)

    [青少年CTF] MISC题解(三) 31)FireFox Forensics 32)Game 33)ez-usb 34)Top1 35)应急食品 36)愿风神忽悠你 37)key 38)明日方舟 3 ...

  3. [青少年CTF]-MISC WP(一)

    [青少年CTF] MISC题解(一) 1)Attack 2) caesar 3)19sanity 4)just_a_rar 5)西安加油 6)Bear 7)百家姓 8)上号 9)从尾看到头 10)老师 ...

  4. [青少年CTF]Web—Easy CheckMe1-8 by 周末

    青少年CTF训练平台 CheckMe1-8 个人博客:https://www.st1ck4r.top/ CheckMe01 考点:php代码审计 给了一个输入框,先随便输点东西进去. 直接就给出了源码 ...

  5. 青少年ctf crypto easy 部分题解

    1.BASE 拿到附件用cyberchef自动解码得到flag 2.basic-crypto 拿到附件发现是一串01的数字,这时候想到二进制转换 然后base64在线解码 接着根据提示想到凯撒密码解密 ...

  6. CTF——MISC习题讲解(GKCTF 2021系列)

    CTF--MISC习题讲解(GKCTF 2021系列) 前言 接下来陆续给大家复现一些赛事的杂项习题讲解,因为本人也是小白入门,有些题目做的不对还请各位大佬多多包涵. 一.[GKCTF 2021]签到 ...

  7. 青少年CTF - Web - Flag在哪里 Wp WriteUp

    平台名称:青少年CTF训练平台 题目名称:Flag在哪里? 解题过程: 启动环境,需要等待大概20秒左右的时间. 访问,页面显示Flag反正不在这. 右键网页,发现无法使用右键. 那么我们直接F12 ...

  8. CTF——MISC习题讲解(UTCTF2020系列)

    CTF--MISC习题讲解(UTCTF2020系列) 前言 上一章节我们已经做完一场比赛的杂项题目,这次给大家介绍一下UTCTF中杂项题目. 一.[UTCTF2020]docx 题目链接如下: 链接: ...

  9. 青少年CTF - Crypto - 一起下棋 Wp WriteUp

    平台名称:青少年CTF训练平台(原中学生CTF平台) 题目名称:一起下棋 下载附件后,得到一串文本: 414333134421{9913154606-913113-413129-121207-2612 ...

最新文章

  1. 业务代码解构利器--SWAK
  2. java窗口课程_课程登记窗口java
  3. mysql字符集相关问题_MySQL 字符集相关问题
  4. Redis 初探-安装与使用
  5. java后ping不是内部_ping不是内部或外部命令,也不是可运行的程序解决方案
  6. Kotlin学习笔记(六) 伴生对象 对象表达式
  7. ASP.NET Core 3.0预览版体验
  8. 阿里云数据库四位小伙伴聚齐!共同开启生态合作新篇章!
  9. 川大的计算机科学分数线,四川大学各排名及分数线整理_四川大学特色分享
  10. c语言学习-编写函数求x的n次方的值
  11. 035——VUE中表单控件处理之使用vue控制select操作文字栏目列表
  12. [UVALive 3983] Robotruck
  13. OE 发邮件 500 Error: bad syntax', Port: 25, ... Error Number: 0x800CCC79
  14. linux fdisk ntfs,2014.1.2 学习记录(fdisk、ntfs)
  15. 卷积神经网络与机器视觉,卷积神经网络图像分类
  16. HTML中的SEO优化
  17. python 基础代谢率计算_基于python实现计算且附带进度条代码实例
  18. 胡乱捣鼓03——PID定身12cm直线追踪小车做起来~
  19. 备用手机如何自动转发短信和验证码
  20. EMC Navisphere AGENT(NAVIAGENT) 安装日志

热门文章

  1. java如何产生一个随机数
  2. 在java中如何产生随机数
  3. 质量冷知识:TRIZ,一个被人忽略的管理工具
  4. 事务transactional详解
  5. VMWare 虚拟网络连接设置与主机设置不一致导致虚拟机无法连接网络的解决办法
  6. 2022 年,阿里内推 Java 后端面试题,文末附面试福利
  7. 逻辑回归(吴恩达机器学习笔记)
  8. thinkphp 重构
  9. springboot flowable 工作流
  10. GO语言实现P2P网络-客户端实现并且运行和测试