BUUCTF MISC 100题

BUUCTF MISC 100题

1.签到

白送,flag{buu_ctf}

2.银三瘦

附件是一张图片,ps打开,拼接flag{he11ohongke}

3.你竟然赶我走

010editor下载地址:https://www.123pan.com/s/HQeA-TP1Sh

是jpg图片,先用010editor打开,运行了jpg脚本,发现未知的填充块,里面就是flag。

image-20230626081615556

4.二维码

附件是一张图片,用QR Research扫一下,提示secret is here。在这个过程中发现了一个bug,就是用QR Research打开图片的时候,路径中不能存在".",存在就会file open err。

image-20230626221834038

010editor打开后发现有压缩包

image-20230626222501256

用010editor分离出一个压缩包,但是压缩包加了密码,尝试secret is here,不是正确的密码,zip压缩包用Ziperello爆破一下,直接爆出来了。(也可以用binwalk -e xxxx.png)

image-20230626231745840

解压得到CTF{vjpw_wnoei}

其实压缩包里面的txt文件名也有提示,4number,大概就是4个数字的意思吧。

5.大白

附件是一张图片,直接010editor打开后,修改高,flag就出来了。

image-20230630122050195

image-20230630122102540

flag{He1l0_d4_ba1}

6.N种方法解决

附件下载后是key.exe,我电脑是w11,打不开,先拖到ida看看。ida显示这是一个二进制文件...

010打开看看。

image-20230630123220700

应该是个图片,转一下。

base64在线转图片http://www.yzcopen.com/img/imgbase64

image-20230630123457928

出来个二维码,保存之后扫一下。

image-20230630123632270

拿到flag。

7.乌镇峰会种图

打开是一张图,然后010打开,直接出了flag。

image-20230630124054646

8.基础破解

附件是rar格式,题目提示是4位数字加密,直接爆破就行。

image-20230630125812863

密码是2563,解压出来txt,内容是ZmxhZ3s3MDM1NDMwMGE1MTAwYmE3ODA2ODgwNTY2MWI5M2E1Y30=

先用base64解一下看看

import base64
base64.b64decode('ZmxhZ3s3MDM1NDMwMGE1MTAwYmE3ODA2ODgwNTY2MWI5M2E1Y30=')
b'flag{70354300a5100ba78068805661b93a5c}'

9.wireshark

给了一个流量包,用wireshark打开。

http.request.method==POST

筛选出post包,然后在包的内容里找到flag

image-20230701115716662

flag{ffb7567a1d4f4abdffdb54e022f8facd}

10.文件中的秘密

附件是一张图片,010editor打开

image-20230701120025542

flag{870c5a72806115cb5439345d8b014396},有一说一,我不知道这道题在考什么...

看了几个wp,发现flag是藏在图片属性的备注里面。

11.LSB

丢进Stegsolve看看

image-20230701123624090image-20230701123643211

感觉0通道有东西似的

image-20230701123740881

保存成png,发现是一张二维码,扫码后得flag。flag{1sb_i4_s0_Ea4y}

12.zip伪加密

伪加密知识点:

image-20230701130239940

1压缩源文件数据区:
50 4B 03 04:这是头文件标记
14 00:解压文件所需pkware 版本
00 00:全局方式位标记(判断有无加密)
08 00:压缩方式
50 A3:最后修改文件时间
A5 4A:最后修改文件日期
2压缩源文件目录区:
50 4B 01 02:目录中文件文件头标记
1F 00:压缩使用的pkware 版本
14 00:解压文件所需pkware 版本
00 00:全局方式位标记(判断是否为伪加密)
08 00:压缩方式
50A3:最后修改文件时间
A54A:最后修改文件日期
3压缩源文件目录结束标志:
50 4B 05 06:目录结束标记
00 00:当前磁盘编号
00 00:目录区开始磁盘编号
01 00:本磁盘上纪录总数
01 00:目录区中纪录总数
5A 00 00 00:目录区尺寸大小
3F 00 00 00:目录区对第一张磁盘的偏移量
00 00:ZIP文件注释长度

所以这里修改两个地方的09 00为00 00,就可以打开压缩包了。flag{Adm1N-B2G-kU-SZIP}

13.被嗅探的流量

放进wireshark看看

直接搜索post包,flag就在其中一个包里面

flag{da73d88936010da1eeeb36e945ec4b97}

image-20230701131621684

14.rar

题目提示密码是4位数字,rar格式,用ARCHPR暴力破解一下。

image-20230701132107806

解压出来直接就是flag。flag{1773c5da790bd3caff38e3decd180eb7}

15.qr

直接扫一下就出了flag了。flag{878865ce73370a4ce607d21ca01b5e59}

16.镜子里面的世界

附件是一张图片,有一说一,我觉得这个题目很垃圾!丢进Stegsolve,发现0通道下有东西,分析一下,出来了英文。

image-20230701133846406

flag{st3g0_saurus_wr3cks}

17.ningen

图片里面提取zip压缩包,然后爆破,解压出来就是flag。

18.小明的保险箱

binwalk分离出一个加密的rar压缩包,然后爆破。

19.爱因斯坦

binwalk分离出一个假面的zip压缩包,图片备注写到:this_is_not_password,用这个进行解压。有一说一,这题真傻逼。

20.easycap

啥也没学到,打开就是flag{385b87afc8671dee07550290d16a8071}

21.隐藏的钥匙

strings xxx,得到flag:base64:(Mzc3Y2JhZGRhMWVjYTJmMmY3M2QzNjI3Nzc4MWYwMGE=)

base64.b64decode("Mzc3Y2JhZGRhMWVjYTJmMmY3M2QzNjI3Nzc4MWYwMGE=")

flag{377cbadda1eca2f2f73d36277781f00a}

22.另外一个世界

图片中提取出

01101011011011110110010101101011011010100011001101110011

二进制转字符出现:koekj3s

flag{koekj3s}

二进制转字符的基本原理,八个为一组:

01101011 01101111

image-20230702175023986

23.FLAG

stegsolve打开,到处zip,解压出来是elf文件,010打开后找到flag

hctf{dd0gf4c3tok3yb0ard4g41n~~~}

24.神秘龙卷风

ARCHPR爆破出rar密码

Brainfuck加密解密:https://tool.bugku.com/brainfuck/

flag{e4bbef8bdf9743f8bf5b727a9f6332a8}

25.数据包中的线索

wireshark打开,分析http包,发现神秘代码,然后base64转图片。

flag{209acebf6324a09671abc31c869de72c}

26.假如给我三天光明

image-20230708155248843

给一张图片和一个压缩包,压缩包有密码,图片中有盲文,对照一下。
KMDONOWG

kmdonowg

音频文件分析一下,发现是摩斯密码

-.-./-/..-./.--/.--././../-----/---../--.../...--/..---/..--../..---/...--/-../--..

CTFWPEI08732?23DZ

flag{CTFWPEI08732?23DZ}错误

flag{ctfwpei08732?23dz}错误

flag{wpei08732?23dz}正确(傻逼题!)

27.后门查杀

附件是一套web程序,用D盾扫了一下,扫到了大马,然后看到了pass,flag{pass}

28.webshell后门

题目提示Webshell中的密码(md5)即为答案

D盾扫一扫

ba8e6c6f35a53933b871480bb9a9545c

flag{ba8e6c6f35a53933b871480bb9a9545c}

29.来首歌吧

音频文件,摩斯密码

...../-.../-.-./----./..---/...../-..../....-/----./-.-./-.../-----/.----/---../---../..-./...../..---/./-..../.----/--.../-../--.../-----/----./..---/----./.----/----./.----/-.-.

5BC925649CB0188F52E617D70929191C

30.荷兰宽带数据泄露

下载了一个可以看路由器配置的软件RoutePassView,打开之后搜索password。

image-20230709093349878

flag{053700357621}

31.面具下的flag

binwalk分离出一个压缩包,压缩包里面有一个flag.vmdk,这是一个虚拟磁盘,用360压缩打开。发现flag。

kali里面可用命令7z x flag.vmdk -o./

flag{N7F5_AD5_i5_funny!}

32.九连环

发现了一个判断是真加密还是伪加密的方法,用7z打开压缩包,解压的时候如果让输入压缩密码,就是真加密。如果解压失败,就是伪加密。...

很乱,甚至感觉这题怪傻逼的。

50 4B 03 04 XX XX 00 00

50 4B 01 02 XX XX XX XX 00 00

先记住改这两个地方就行!!!

解压出来一张图片

steghide extract -sf 1111111.jpg

用steghide 提取出一个txt,解压就行。

bV1g6t5wZDJif^J7

flag{1RTo8w@&4nK@z*XL}

有一说一,我了解了有steghide这么一个工具,其它的啥也没学到。。。

33.被劫持的神秘礼物

某天小明收到了一件很特别的礼物,有奇怪的后缀,奇怪的名字和格式。小明找到了知心姐姐度娘,度娘好像知道这是啥,但是度娘也不知道里面是啥。。。你帮帮小明?找到帐号密码,串在一起,用32位小写MD5哈希一下得到的就是答案。

name=admina&word=adminb

adminaadminb

1d240aafe21a86afc11f38a45b541a49

flag{1d240aafe21a86afc11f38a45b541a49}

34.[BJDCTF2020]认真你就输了

是xls表格,改后缀改成zip,解压出来找到flag.txt

flag{M9eVfi2Pcs#}

35.[BJDCTF2020]藏藏藏

图片分离出一个压缩包,直接解压出来,然后扫码拿flag。

用一下foremost!!!

36.刷新过的图片

新知识点,F5刷新隐写,得借助工具。

git clone https://github.com/matthewgao/F5-steganography

java Extract xxx.jpg

需要特定几个版本的jdk,不想装了,不做了。

37.被偷走的文件

流量包,直接搜索flag,找到rar压缩包。

image-20230712192907622

压缩包有密码,爆破一下。

flag{6fe99a5d03fb01f833ec3caa80358fa3}

学到一个骚操作,流量包有rar,直接用binwalk分离文件...

38.[GXYCTF2019]佛系青年

压缩包里一个图片一个文本,文本有密码,图片没密码,我以为是解压出来图片,从图片里找文本的压缩包密码,事实发现图片只是个干扰,并没有什么用。文本是伪加密,010editor修改后解压出来。

佛曰:遮等諳勝能礙皤藐哆娑梵迦侄羅哆迦梵者梵楞蘇涅侄室實真缽朋能。奢怛俱道怯都諳怖梵尼怯一罰心缽謹缽薩苦奢夢怯帝梵遠朋陀諳陀穆諳所呐知涅侄以薩怯想夷奢醯數羅怯諸

与佛论禅:https://ctf.bugku.com/tool/todousharp

新约佛论禅:http://hi.pcmoe.net/buddha.html

flag{w0_fo_ci_Be1}

39.snake

解压出来是一张图片,binwalk分离出一个压缩包,压缩包里面一个key,一个cipher

key:V2hhdCBpcyBOaWNraSBNaW5haidzIGZhdm9yaXRlIHNvbmcgdGhhdCByZWZlcnMgdG8gc25ha2VzPwo=

base64解码后:What is Nicki Minaj's favorite song that refers to snakes?

尼基·米纳吉最喜欢的关于蛇的歌是什么?

anaconda

不懂。

对于蛇这个名词,在英语中还有一个翻译:Serpent。

一种加密,在线解密网站:http://serpent.online-domain-tools.com/

image-20230713130624921

CTF{who_knew_serpent_cipher_existed}

flag{who_knew_serpent_cipher_existed}

40.[BJDCTF2020]你猜我是个啥

010打开直接出现了flag

flag{i_am_fl@g}

41.秘密文件

流量,直接binwalk分离出一个加密的压缩包。

爆破一下,压缩包密码1903。解压出来就是flag

flag{d72e5a671aa50fa5f400e5d10eedeaa5}

42.[BJDCTF2020]just_a_rar

一个加密的rar,压缩包名字是4位数,爆破一下,密码是2016,解压出来一个图片,flag在图片备注。

flag{Wadf_123}

43.[BJDCTF2020]鸡你太美

给了两张图片,一张能打开,一张打不开。

思路:给打不开的那张图片添加文件头

flag{zhi_yin_you_are_beautiful}

44.菜刀666

只留下http流,然后根据包的长度进行筛选。

image-20230713173524178

5000大小的,跟踪一下流量。

image-20230713173605878

FFD8FFE0,jpg格式的,应该是一张图片,dump下来看看。

然后010editor,导入16进制文件,然后保存格式为jpg。

image-20230713173934789

Th1s_1s_p4sswd_!!!

用foremost 666666.pcapng分离出一个压缩包,有密码,用上面的密码解压。

flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}

45.[BJDCTF2020]一叶障目

image-20230714075124381

修改高之后出来flag

46.[SWPU2019]神奇的二维码

开局一张二维码,扫描之后没任何信息。

image-20230714075536096

foremost啥也分离不出来,用binwalk分离出一堆东西。。。

encode.txt里面

YXNkZmdoamtsMTIzNDU2Nzg5MA==

base64解码一下:asdfghjkl1234567890,然而这个并没有什么用。

flag.doc里面有一大堆,经过多层base64解密后得到:comEON_YOuAreSOSoS0great

有一个压缩包有密码,用这个打开解压出来是个mp3,里面是摩斯密码

--/---/.-./..././../.../...-/./.-./-.--/...-/./.-./-.--/./.-/.../-.--

MORSEISVERYVERYEASY

flag{MORSEISVERYVERYEASY}

flag{morseisveryveryeasy}

47.[BJDCTF2020]纳尼

gif打不开,加一个文件头

Q1RGe3dhbmdfYmFvX3FpYW5nX2IzX3NhZH0=

Q1RGe3dhbmdfYmFvX3FpYW5nX2lzX3NhZH0=

第一个 大写的i 第二个小写的L

CTF{wang_bao_qiang_is_sad}

flag{wang_bao_qiang_is_sad}

48.梅花香之苦寒来

图片末尾有大量的16进制的数字,转成字符串是一堆坐标。

kali可以直接跑这个脚本

import matplotlib.pyplot as plt
import numpy as np
x, y = np.loadtxt('./zb.txt', delimiter=',', unpack=True)
plt.plot(x, y, '.')
plt.show()

扫描二维码能得到flag

flag{40fc0a979f759c8892f4dc045e28b820}

49.穿越时空的思念

嫦娥当年奔月后,非常后悔,因为月宫太冷清,她想:早知道让后羿自己上来了,带了只兔子真是不理智。于是她就写了一首曲子,诉说的是怀念后羿在的日子。无数年后,小明听到了这首曲子,毅然决定冒充后羿。然而小明从曲子中听不出啥来,咋办。。(该题目为小写的32位字符,提交即可) 注意:得到的 flag 请包上 flag{} 提交

..-./-----/..---/----./-.../-../-..../..-./...../...../.----/.----/...--/----./././-.././-.../---.././....-/...../.-/.----/--.../...../-.../-----/--.../---../-..../..-./-----/..---/----./-.../-../-..../..-./.....

F029BD6F551139EEDEB8E45A175B0786

F029BD6F5

f029bd6f551139eedeb8e45a175b0786f029bd6f5

flag{f029bd6f551139eedeb8e45a175b0786}

音频中有两段摩斯,flag是第一段摩斯密码。

50.[HBNIS2018]excel破解

下载下是一个excel表格,拖到kali里面strings

strings attachment.xls>1.txt

flag is here CTF{office_easy_cracked}

flag{office_easy_cracked}

51.[ACTF新生赛2020]outguess

查看图片属性,发现“公正民主公正文明公正和谐”,盲猜社会主义核心价值观。

解密后是“abc”

题目提示用outguess

outguess -k 'abc' -r mmm.jpg flag.txt

ACTF{gue33_Gu3Ss!2020}

flag{gue33_Gu3Ss!2020}

52.[HBNIS2018]来题中等的吧

image-20230720074124186

看着有点像摩斯密码,试试。

.-/.-../.--./..../.-/.-../.-/-...

ALPHALAB

alphalab

flag{alphalab}

没想到这就是flag...

53.谁赢了比赛?

binwalk分离文件,爆破压缩包密码,分离gif,stegsolve,扫二维码。

flag{shanxiajingwu_won_the_game}

54.[WUSTCTF2020]find_me

图片属性中有盲文

⡇⡓⡄⡖⠂⠀⠂⠀⡋⡉⠔⠀⠔⡅⡯⡖⠔⠁⠔⡞⠔⡔⠔⡯⡽⠔⡕⠔⡕⠔⡕⠔⡕⠔⡕⡍=

https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=mangwen

wctf2020{y$0$u_f$1$n$d$_M$e$e$e$e$e}

flag{y$0$u_f$1$n$d$_M$e$e$e$e$e}

55.[SWPU2019]我有一只马里奥

一个exe文件,打开会输出一个txt文件,直接用binwalk分离一下。

swupctf{ddg_is_cute}

flag{ddg_is_cute}

56.[GXYCTF2019]gakki

foremost分离出一个压缩包(别问我为什么一会儿用binwalk一会儿用foremost,我都是看心情随机用。。。)

爆破rar解压出flag.txt。

大量杂乱无章的字符串。。。考虑字符统计

GXY{gaki_IsMyw1fe}

flag{gaki_IsMyw1fe}

57.[GUET-CTF2019]KO

打开全部都是ok!!!

welcome to CTF

flag{welcome to CTF}

难以置信!

58.[ACTF新生赛2020]base64隐写

附件是一个压缩包和一张能扫的二维码。

扫一下二维码:http://weixin.qq.com/r/ajgfBz-E62KUrXtk9214,已经跳转不过去了。

ACTF{6aseb4_f33!}

flag{6aseb4_f33!}

59.[MRCTF2020]ezmisc

附件是一张图片,修改一下高就看到flag了。

MRCTF{1ts_vEryyyyyy_ez!}

flag{1ts_vEryyyyyy_ez!}

60.[SWPU2019]伟大的侦探

压缩包密码:摂m墷m卪倕ⅲm仈Z
呜呜呜,我忘记了压缩包密码的编码了,大家帮我解一哈。

进010把编码改成EBCDIC,解压密码是wllm_is_the_best_team!

福尔摩斯密码。

image-20230726082354088

flag{iloveholmesandwllm}

61.黑客帝国

010editor 文件->导入16进制

rar文件爆破一下,解压出一个图片来。

  • JPEG 文件头:FF D8 FF 文件尾:FF D9
  • TGA 未压缩的前4字节 00 00 02 00 RLE压缩的前5字节 00 00 10 00 00
  • PNG 文件头:89 50 4E 47 0D 0A 1A 0A 文件尾:AE 42 60 82
  • GIF 文件头:47 49 46 38 39(37) 61 文件尾:00 3B
  • BMP 文件头:42 4D 文件头标识(2 bytes) 42(B) 4D(M)
  • TIFF (tif) 文件头:49 49 2A 00
  • ico 文件头:00 00 01 00
  • Adobe Photoshop (psd) 文件头:38 42 50 53

看文件尾是FFD9,修改成jpg的文件头之后图片就可以打开了

flag{57cd4cfd4e07505b98048ca106132125}

62.[HBNIS2018]caesar

题目:caesar

描述:gmbhjtdbftbs

flag格式:XXX 明文

提交:直接提交明文 (小写)

flagiscaesar

flag{flagiscaesar}

63.[HBNIS2018]低个头

题目:低个头

描述:EWAZX RTY TGB IJN IO KL 请破解该密文 

flag格式:XXX 明文

提交:直接提交明文(大写)

试着用quipqiup破解看看

破解失败,查看wp!

image-20230727113434606

flag{CTF},万万想不到。。。

64.[MRCTF2020]你能看懂音符吗

  • ZIP Archive (zip) 文件头:50 4B 03 04 文件尾:50 4B
  • RAR Archive (rar) 文件头:52 61 72 21

改一下文件头,文件可以打开了。

文字隐藏了,但是我一下就看到了。。。

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

https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=yinyue

MRCTF{thEse_n0tes_ArE_am@zing~}

flag{thEse_n0tes_ArE_am@zing~}

65.[SUCTF2018]single dog

附件是一张图片,foremost分离出一个压缩包。

解压出来一个1.txt

゚ω゚ノ= /`m´)ノ ~┻━┻   //*´∇`*/ ['_']; o=(゚ー゚)  =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] ,゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] ,゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'_')[゚Θ゚]+ ((゚ω゚ノ==3) +'_') [゚ー゚] + ((゚Д゚) +'_') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +'_') [゚Θ゚]+((゚ー゚==3) +'_') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) ['c']+((゚Д゚)+'_') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) ['o']+((゚ー゚==3) +'_') [゚Θ゚];(゚Д゚) ['_'] =(o^_^o) [゚o゚] [゚o゚];(゚ε゚)=((゚ー゚==3) +'_') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+((゚Д゚)+'_') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +'_') [o^_^o -゚Θ゚]+((゚ー゚==3) +'_') [゚Θ゚]+ (゚ω゚ノ +'_') [゚Θ゚]; (゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]='\\'; (゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^_^o -(゚Θ゚)];(o゚ー゚o)=(゚ω゚ノ +'_')[c^_^o];(゚Д゚) [゚o゚]='\"';(゚Д゚) ['_'] ( (゚Д゚) ['_'] (゚ε゚+(゚Д゚)[゚o゚]+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (o^_^o))+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) - (゚Θ゚))+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) - (゚Θ゚))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (c^_^o)+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) - (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (c^_^o)+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (o^_^o))+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (o^_^o))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((゚ー゚) + (o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ ((o^_^o) +(o^_^o))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (o^_^o))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (゚Θ゚))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) +(o^_^o))+ (゚ー゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ ((゚ー゚) + (゚Θ゚))+ (o^_^o)+ (゚Д゚) ['c']+ (゚Д゚) ['c']+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ ((゚ー゚) + (゚Θ゚))+ (o^_^o)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (゚ー゚)+ (゚Д゚) .゚Д゚ノ+ (c^_^o)+ (c^_^o)+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚) [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+ (゚Д゚) .゚Θ゚ノ+ (゚Д゚)[゚ε゚]+(o゚ー゚o)+ (゚ー゚)+ (゚Д゚) .゚Д゚ノ+ ((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+(゚ー゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ (o^_^o)+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((゚ー゚) + (o^_^o))+ ((゚ー゚) + (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ ((o^_^o) - (゚Θ゚))+ (゚Д゚)[゚ε゚]+(゚Θ゚)+ (゚ー゚)+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (c^_^o)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (゚Θ゚))+ (゚Θ゚)+ (゚Д゚)[゚ε゚]+((゚ー゚) + (o^_^o))+ (o^_^o)+ (゚Д゚)[゚o゚]) (゚Θ゚)) ('_');

SUCTF{happy double eleven}

https://toolkk.com/tools/aaencode-encode-decode

aaencode加密

flag{happy double eleven}

66.我吃三明治

如题目名字所说。

一张图片

数据

一张图片

数据是MZWGCZ33GZTDCNZZG5SDIMBYGBRDEOLCGY2GIYJVHA4TONZYGA2DMM3FGMYH2

base32解密

flag{6f1797d4080b29b64da5897780463e30}

67.[SWPU2019]你有没有好好看网课?

两个压缩包,其中一个压缩包提示解压密码是6位数字,爆破一下。

183792

一个视频,改后缀为gif,然后拆分一下,第221帧:dXBfdXBfdXA=

第170帧image-20230728161327885

..... ../... ./... ./... ../

敲击码表
  1  2  3  4  5
1 A  B C/K D  E
2 F  G  H  I  J 
3 L  M  N  O  P
4 Q  R  S  T  U
5 V  W  X  Y  Z

wllm(先行后列!!!)

dXBfdXBfdXA=经过base64解码得:up_up_up

解码密码wllmup_up_up

解压出图片来010看到flag

swpuctf{A2e_Y0u_Ok?}

flag{A2e_Y0u_Ok?}

68.[ACTF新生赛2020]NTFS数据流

解压压缩包,发现有一个txt和其它不一样,打开就发现了flag...

image-20240617171658104

ACTF{AAAds_nntfs_ffunn?}

69.sqltest

附件是一个流量包

考的是sql盲注的流量,不会做。。。先鸽了

70.john-in-the-middle

先用foremost尝试看看能不能从流量包中找到一些东西,这里分离出几张图片。

image-20240617215431930

第一张图片,看看不同通道可以看道

image-20240617215646672

看不太清,用656.png图像合成一下

image-20240617215808535

flag{J0hn_th3_Sn1ff3r}

71.[ACTF新生赛2020]swp

又是一个流量包,我发现用foremost来分离流量包效果并不好,还是用鲨鱼的导出对象好用。

image-20240617220737182

导出之后有一个image-20240617220824165

发现是伪加密,修复伪加密后直接查找字符串就能找到flag

72.[UTCTF2020]docx

docx本质其实就是压缩包,用foremost分离解压压缩包,在一堆png中找到了flag

image-20240617221531780

flag{unz1p_3v3ryth1ng}

73.[GXYCTF2019]SXMgdGhpcyBiYXNlPw==

题目是base64,解码:Is this base?

附件内容:

Q2V0dGUgbnVpdCwK
SW50ZW5hYmxlIGluc29tbmllLAp=
TGEgZm9saWUgbWUgZ3VldHRlLAo=
SmUgc3VpcyBjZSBxdWUgamUgZnVpcwp=
SmUgc3ViaXMsCt==
Q2V0dGUgY2Fjb3Bob25pZSwK
UXVpIG1lIHNjaWUgbGEgdOmUmnRlLAp=
QXNzb21tYW50ZSBoYXJtb25pZSwK
RWxsZSBtZSBkaXQsCo==
VHUgcGFpZXJhcyB0ZXMgZGVsaXRzLAp=
UXVvaSBxdSdpbCBhZHZpZW5uZSwK
T24gdHJh5Y2vbmUgc2VzIGNoYeWNr25lcywK
U2VzIHBlaW5lcywK
SmUgdm91ZSBtZXMgbnVpdHMsCm==
QSBsJ2Fzc2FzeW1waG9uaWUsCl==
QXV4IHJlcXVpZW1zLAr=
VHVhbnQgcGFyIGRlcGl0LAq=
Q2UgcXVlIGplIHNlbWUsCt==
SmUgdm91ZSBtZXMgbnVpdHMsCp==
QSBsJ2Fzc2FzeW1waG9uaWUsCp==
RXQgYXV4IGJsYXNwaGVtZXMsCo==
Sidhdm91ZSBqZSBtYXVkaXMsCl==
VG91cyBjZXV4IHF1aSBzJ2FpbWVudCwK
TCdlbm5lbWksCu==
VGFwaSBkYW5zIG1vbiBlc3ByaXQsCp==
RumUmnRlIG1lcyBkZWZhaXRlcywK
U2FucyByZXBpdCBtZSBkZWZpZSwK
SmUgcmVuaWUsCq==
TGEgZmF0YWxlIGhlcmVzaWUsCh==
UXVpIHJvbmdlIG1vbiDplJp0cmUsCo==
SmUgdmV1eCByZW5h5Y2vdHJlLAp=
UmVuYeWNr3RyZSwK
SmUgdm91ZSBtZXMgbnVpdHMsCn==
QSBsJ2Fzc2FzeW1waG9uaWUsCq==
QXV4IHJlcXVpZW1zLAp=
VHVhbnQgcGFyIGRlcGl0LAq=
Q2UgcXVlIGplIHNlbWUsCo==
SmUgdm91ZSBtZXMgbnVpdHMsCm==
QSBsJ2Fzc2FzeW1waG9uaWUsCl==
RXQgYXV4IGJsYXNwaGVtZXMsCm==
Sidhdm91ZSBqZSBtYXVkaXMsCu==
VG91cyBjZXV4IHF1aSBzJ2FpbWVudCwK
UGxldXJlbnQgbGVzIHZpb2xvbnMgZGUgbWEgdmllLAp=
TGEgdmlvbGVuY2UgZGUgbWVzIGVudmllcywK
U2lwaG9ubmVlIHN5bXBob25pZSwK
RGVjb25jZXJ0YW50IGNvbmNlcnRvLAq=
SmUgam91ZSBzYW5zIHRvdWNoZXIgbGUgRG8sCo==
TW9uIHRhbGVudCBzb25uZSBmYXV4LAp=
SmUgbm9pZSBtb24gZW5udWksCo==
RGFucyBsYSBtZWxvbWFuaWUsCl==
SmUgdHVlIG1lcyBwaG9iaWVzLAq=
RGFucyBsYSBkZXNoYXJtb25pZSwK
SmUgdm91ZSBtZXMgbnVpdHMsCv==
QSBsJ2Fzc2FzeW1waG9uaWUsCn==
QXV4IHJlcXVpZW1zLAp=
VHVhbnQgcGFyIGRlcGl0LAo=
Q2UgcXVlIGplIHNlbWUsCm==
SmUgdm91ZSBtZXMgbnVpdHMsCp==
QSBsJ2Fzc2FzeW1waG9uaWUsCm==
RXQgYXV4IGJsYXNwaGVtZXMsCu==
Sidhdm91ZSBqZSBtYXVkaXMsCm==
VG91cyBjZXV4IHF1aSBzJ2FpbWVudCwK
SmUgdm91ZSBtZXMgbnVpdHMsCn==
QSBsJ2Fzc2FzeW1waG9uaWUgKGwnYXNzYXN5bXBob25pZSksCn==
Sidhdm91ZSBqZSBtYXVkaXMsCt==
VG91cyBjZXV4IHF1aSBzJ2FpbWVudA==

一堆base64,用base64隐写进行解密:GXY{fazhazhenhaoting}

base64隐写有一个特征就是会出现多条base64加密后的数据

74.间谍启示录

在城际公路的小道上,罪犯G正在被警方追赶。警官X眼看他正要逃脱,于是不得已开枪击中了罪犯G。罪犯G情急之下将一个物体抛到了前方湍急的河流中,便头一歪突然倒地。警官X接近一看,目标服毒身亡。数分钟后,警方找到了罪犯遗失物体,是一个U盘,可惜警方只来得及复制镜像,U盘便报废了。警方现在拜托你在这个镜像中找到罪犯似乎想隐藏的秘密。 注意:得到的 flag 请包上 flag{} 提交。

foremost提取出一个压缩包,有flag.exe,运行之后flag就出来了

image-20240617223022934

flag{379:7b758:g7dfe7f19:9464f:4g9231}

75.喵喵喵

一张图片,看到LSB的BGR有东西

image-20240618071601239

image-20240618071929669

点Save Bin,保存了之后用010editor打开,点这个

image-20240618073101536

png开头是8950,最前面的fffe是多余的,删去。

image-20240618073150370

图片可以看到了,但是是一般的二维码,盲猜就是高让改了,脚本修正一下,扫描二维码出现个网址:https://pan.baidu.com/s/1pLT2J4f

image-20240618073317294

下载下一个名为flag的压缩包,解压出来之后是一个flag.txt的文件,但是打开不是flag。

看了其他师傅的wp才知道这道题涉及到NTFS隐写。。。(我是真想不到

flag.rar必须用winrar才能连带隐写内容解压出来,解压出来用NtfsStreamsEditor导出隐写内容image-20240618075957963

是pyc文件,pycdc.exe flag.pyc > 1.py

import base64

def encode():
    flag = '*************'
    ciphertext = []
    for i in range(len(flag)):
        s = chr(i ^ ord(flag[i]))
        if i % 2 == 0:
            s = ord(s) + 10
        else:
            s = ord(s) - 10
        ciphertext.append(str(s))
    
    return ciphertext[::-1]

ciphertext = ['96','65','93','123','91','97','22','93','70','102','94','132','46','112','64','97','88','80','82','137','90','109','99','112']

有一个小坑,ciphertext[::-1]返回的ciphertext是逆序过后的。。。让我最开始没做出来。。。

理解了这个写解密脚本就行了

ciphertext = ['96','65','93','123','91','97','22','93','70','102','94','132','46','112','64','97','88','80','82','137','90','109','99','112']
ciphertext = ciphertext[::-1]  # 反转列表
flag = []
for i in range(len(ciphertext)):
    if i%2 == 0:
        s = int(ciphertext[i])-10
    else:
        s = int(ciphertext[i])+10
    flag.append(chr(s^i))
flag = ''.join(flag)
print(flag)
#flag{Y@e_Cl3veR_C1Ever!}

76.小易的U盘

小易的U盘中了一个奇怪的病毒,电脑中莫名其妙会多出来东西。小易重装了系统,把U盘送到了攻防实验室,希望借各位的知识分析出里面有啥。请大家加油噢,不过他特别关照,千万别乱点他U盘中的资料,那是机密。

foremost提取出一个压缩包,解压之后看了看文件,里面有很多autoflah.exe的文件

image-20240618082824017

找到一个时间和其它不一样的,ida打开之后就找到了flag

flag{29a0vkrlek3eu10ue89yug9y4r0wdu10}

77.[RoarCTF2019]黄金6年

视频文件,将后缀改成gif格式的,然后逐帧看,发现4个二维码。(用ai写了一个批量识别二维码的脚本,对于此题来说效果并不好)

不好扫的话可以扔进StegSolve调整一下就好扫了

key1:i

key2:want

key3:play

image-20240618131220673

这就是第4个二维码...

image-20240618131325624

调一下就好扫了

key4:ctf

iwantplayctf

用010打开视频文件,在文件最后面发现一串base64

image-20240618132731825

解码之后发现是一个压缩包,用base转任意文件的功能转成rar文件,用上面的key进行解密,解压出flag

roarctf{CTF-from-RuMen-to-RuYuan}

flag{CTF-from-RuMen-to-RuYuan}

78.[WUSTCTF2020]爬

附件用foremost分离出一个pdf,提示flag被图片遮挡住了,编辑pdf将图片移开,发现一串字符

77637466323032307b746831735f31735f405f7064665f616e645f7930755f63616e5f7573655f70686f7430736830707d

16进制转字符后:

wctf2020{th1s_1s_@_pdf_and_y0u_can_use_phot0sh0p}

flag{th1s_1s_@_pdf_and_y0u_can_use_phot0sh0p}

79.[WUSTCTF2020]alison_likes_jojo

压缩包解压出两张图片,一张图片文件尾有一个压缩包

image-20240618151726212

压缩包是加密的,爆破一下密码是888866,解压出来

WVRKc2MySkhWbmxqV0Zac1dsYzBQUT09

三次base64解码:killerqueen

不会做了,看了别人的write up

另一张图片用outguess隐藏了东西

outguess -k "killerqueen" -r jljy.jpg flag.txt

outguess:这是命令行工具的名字,用于进行隐写术操作,即将秘密信息嵌入到载体文件中。

-k "killerqueen":这个选项表示使用的密钥或密码短语是"killerqueen"。

-r jljy.jpg:-r 参数指定的是源图像文件,即载体文件,在本例中是名为"jljy.jpg"的JPEG格式图片文件。

flag.txt:存放隐藏信息的文件。

得到flag:wctf2020{pretty_girl_alison_likes_jojo}

flag{pretty_girl_alison_likes_jojo}

80.弱口令

加密压缩包,爆破无果,发现备注暗藏玄机

image-20240618162730703

空白是空格和缩进,将空格替换成.,缩进替换成-,火车替换成/,摩斯密码解码得到HELL0FORUM

之后就不会做了,但是我大概能看是lsb的题目,切换的时候能看到有东西,看到别的师傅是用了一个专门的脚本,还套了个123456的弱口令才从图片中解密出flag,不想复现了,感觉这种题目不是大众题,不太喜欢这种用特定脚本才能出的题。

81.[安洵杯 2019]吹着贝斯扫二维码

解压出来一堆不知名文件和一个名为flag.zip的压缩包,解压时发现需要密码

压缩包的备注:GNATOMJVIQZUKNJXGRCTGNRTGI3EMNZTGNBTKRJWGI2UIMRRGNBDEQZWGI3DKMSFGNCDMRJTII3TMNBQGM4TERRTGEZTOMRXGQYDGOBWGI2DCNBY

经过base32解码、16进制转字符串后::q]>WN62os<^b]!;,be.=n;v@9/17'@8bAH

不会做了,反过来看看那一堆不知名文件,检测到这些文件都是jpg格式的,

import os

def rename_to_jpg(directory):
    # 切换到指定目录
    os.chdir(directory)
    
    # 获取当前目录下的所有文件
    files = os.listdir()
    
    # 遍历所有文件
    for file in files:
        # 分离文件名和扩展名
        file_name, file_ext = os.path.splitext(file)
        
        # 跳过目录和已经是.jpg后缀的文件
        if os.path.isfile(file) and file_ext.lower() != '.jpg':
            # 重命名文件为.jpg后缀
            new_file_name = file_name + '.jpg'
            os.rename(file, new_file_name)
            print(f"Renamed: {file} -> {new_file_name}")

if __name__ == "__main__":
    # 设定目标目录
    target_directory = os.getcwd()  # 当前目录
    rename_to_jpg(target_directory)

image-20240619080430246

可以看到是一堆二维码,按照时间进行排序,递增规则

image-20240619081117614

用ppt进行拼接

image-20240619081543662

BASE Family Bucket ???
85->64->85->13->16->32

反过来就是32->16->13->85->64->85,13应该是rot13

image-20240619081748694

ThisIsSecret!233,拿这个去解压压缩包拿到flag:flag{Qr_Is_MeAn1nGfuL}

82.Mysterious

题目描述:自从报名了CTF竞赛后,小明就辗转于各大论坛,但是对于逆向题目仍是一知半解。有一天,一个论坛老鸟给小明发了一个神秘的盒子,里面有开启逆向思维的秘密。小明如获至宝,三天三夜,终于解答出来了,聪明的你能搞定这个神秘盒子么?

感觉这题应该放在逆向的,ida打开之后找到关键代码:

GetDlgItemTextA(hWnd, 1002, String, 260);
strlen(String);
if ( strlen(String) > 6 )
	ExitProcess(0);
v4 = atoi(String);
Value = v4 + 1;
if ( v4 == 122 && String[3] == 'x' && String[5] == 'z' && String[4] == 'y' )
{
    strcpy(Text, "flag");
    memset(&Text[5], 0, 0xFCu);
    v8 = 0;
    v9 = 0;
    _itoa(Value, Source, 10);
    strcat(Text, "{");
    strcat(Text, Source);
    strcat(Text, "_");
    strcat(Text, "Buff3r_0v3rf|0w");
    strcat(Text, "}");
    MessageBoxA(0, Text, "well done", 0);
}

推一下,当我们输入122xyz后,就会弹出flag

flag{123_Buff3r_0v3rf|0w}

83.从娃娃抓起

题目描述:伟人的一句话,标志着一个时代的开始。那句熟悉的话,改变了许多人的一生,为中国三十年来计算机产业发展铺垫了道路。两种不同的汉字编码分别代表了汉字信息化道路上的两座伟大里程碑。请将你得到的话转为md5提交,md5统一为32位小写。

0086 1562 2535 5174
bnhn s wwy vffg vffg rrhy fhnv

请将你得到的这句话转为md5提交,md5统一为32位小写。
提交格式:flag{md5}

0086 1562 2535 5174 中文电码:人 工 智 能

bnhn s wwy vffg vffg rrhy fhnv 五笔编码:也要从娃娃抓起

image-20240619103440282

image-20240619102939095

flag{md5(人工智能也要从娃娃抓起)}

flag{3b4b5dccd2c008fe7e2664bd1bc19292}

84.[GUET-CTF2019]zips

压缩包有密码,爆破一下,密码:723456

解压出一个压缩包,然后有一个伪加密,解压出一个setup.sh,一个flag.zip

#!/bin/bash
zip -e --password=`python -c "print(__import__('time').time())"` flag.zip flag

这脚本的意识就是以当前时间时间戳为密码将flag一个压缩包

这里有一个小坑就是python版本,如果是python3的话,时间戳会精确到小数点后7位,python2的话,只会精确到小数点后2位,作者使用pyhton2的。

image-20240619111633540

找到文件创建那天的时间戳,基于模板的爆破

image-20240619111159965

解压出flag文件文本形式打开:flag{fkjabPqnLawhvuikfhgzyffj}

85.zip

附件是一堆压缩包,题目提示:拼在一起解下base64就有flag

image-20240619175856933

打开压缩包看,发现data只有4字节,而且给了crc32,考crc32爆破来还原数据

import zipfile
import string
import binascii

def CrackCrc(crc):
    for i in dic: 
        for j in dic:
            for k in dic:
                for h in dic:
                    s = i + j + k + h
                    if crc == (binascii.crc32(s.encode())):
                        f.write(s)
                        return

def CrackZip():
        for i in range(0,68):
            file = 'out'+str(i)+'.zip'
            crc = zipfile.ZipFile(file,'r').getinfo('data.txt').CRC
            CrackCrc(crc)

dic = string.ascii_letters + string.digits + '+/='
f = open('out.txt','w')
CrackZip()
print("CRC32碰撞完成")
f.close

#z5BzAAANAAAAAAAAAKo+egCAIwBJAAAAVAAAAAKGNKv+a2MdSR0zAwABAAAAQ01UCRUUy91BT5UkSNPoj5hFEVFBRvefHSBCfG0ruGnKnygsMyj8SBaZHxsYHY84LEZ24cXtZ01y3k1K1YJ0vpK9HwqUzb6u9z8igEr3dCCQLQAdAAAAHQAAAAJi0efVT2MdSR0wCAAgAAAAZmxhZy50eHQAsDRpZmZpeCB0aGUgZmlsZSBhbmQgZ2V0IHRoZSBmbGFnxD17AEAHAA==

剩下的步骤,我就是想破脑袋也想不出来。。。

base64解码后转成rar压缩包,补全文件头,

RAR文件的文件头(magic number)用于标识文件类型,它通常位于文件的开头。RAR文件的文件头可以帮助操作系统和软件识别文件类型并进行相应的处理。

以下是RAR文件的文件头信息:

  • 旧版本的RAR文件(RAR 1.5到RAR 4.0):文件头是0x52617221,即ASCII码字符串"Rar!"
  • 新版本的RAR文件(RAR 5.0及更高版本):文件头是0x526172211A070100,即ASCII码字符串"Rar!\x1A\x07\x01\x00"

具体来说,旧版本和新版本的RAR文件头可以分别表示如下:

  • 旧版本(RAR 1.5到RAR 4.0)

    52 61 72 21 1A 07 00
    
    • 52 61 72 21 -> "Rar!"
    • 1A 07 00 -> 后续标识符
  • 新版本(RAR 5.0及更高版本)

    52 61 72 21 1A 07 01 00
    
    • 52 61 72 21 -> "Rar!"
    • 1A 07 01 00 -> 后续标识符

这些文件头信息可以用于快速检测一个文件是否为RAR格式。例如,在编写文件解析器或进行文件类型检查时,可以读取文件的前几个字节并与上述文件头进行比较,以确认文件类型。

image-20240619182130629

这里我们添加了7个字节,打开之后看到flag

image-20240619182235352

flag{nev3r_enc0de_t00_sm4ll_fil3_w1th_zip}

86.[UTCTF2020]file header

附件是一个png图片,但是打不开。

用puzzlesolver修复png就打开了

image-20240619200131354

flag{3lit3_h4ck3r}

87.[XMAN2018排位赛]通行证

附件是txt,打开后:a2FuYmJyZ2doamx7emJfX19ffXZ0bGFsbg==

base64解码:kanbbrgghjl{zb____}vtlaln

这题有一个问题就是,它考栅栏,是让你将kanbbrgghjl{zb____}vtlaln进行w型加密。。。脑洞真大

w型栅栏加密:kzna{blnl_abj_lbh_trg_vg}

Rot13解码:xman{oyay_now_you_get_it}

flag{oyay_now_you_get_it}

88.[WUSTCTF2020]girlfriend

题目附件girlfriend.wav,打开是嘀嘀嘀嘀嘀嘀。。。

手机键盘加密方式,是每个数字键上有 3-4 个字母,用两位数字来表示字母,例如:ru 用手机键盘表示就是:7382,那么这里就可以知道了,手机键盘加密方式不可能用 1 开头,第二位数字不可能超过 4,解密的时候参考此

image-20240619202408645

image-20240619204808606

解码DTMF网站:http://dialabc.com/sound/detect/index.html (自己尝试的时候觉得不怎么好用,会丢数据)

生成DTMF网站:http://dialabc.com/sound/generate/

本地的软件:(好用!)

image-20240619204854833

999*666*88*2*777*33*6*999*4*4444*777*555*333*777*444*33*66*3*7777

flag{youaremygirlfriends}

89.[DDCTF2018](╯°□°)╯︵ ┻━┻

(究~↓~ㄘ究舟 拋岩拋
50pt

(究~↓~ㄘ究舟 拋岩拋

d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9b2b2e1e2b9b9b7b4e1b4b7e3e4b3b2b2e3e6b4b3e2b5b0b6b1b0e6e1e5e1b5fd

没思路,直接看wp。。。

题目给了这么一串字符串:

d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9b2b2e1e2b9b9b7b4e1b4b7e3e4b3b2b2e3e6b4b3e2b5b0b6b1b0e6e1e5e1b5fd

一共134位,不考虑古典密码,base家族也解不出来,

观察到基本上都是一个字母加上一个数字,所以考虑先把他们两两分组,

'd4', '4e', 'e8', '8e', 'e1', '1f', 'f4', '4a', 'a0', '0f', 'f7', '7e', 'e1', '1f', 'f3', '3a', 'a0', '0e', 'e6', '6e', 'e1', '1f', 'f3', '3f', 'f4', '4a', 'a1', '1a', 'a0', '0d', 'd4', '4e', 'e8', '8e', 'e5', '5a', 'a0', '0e', 'e6', '6e', 'ec', 'ce', 'e1', '1e', 'e7', '7a', 'a0', '0e', 'e9', '9f', 'f3', '3b', 'ba', 'aa', 'a0', '0c', 'c4', '4c', 'c4', '4c', 'c3', '3d', 'd4', '4c', 'c6', '6f', 'fb', 'bb', 'b9', '9b', 'b2', '2b', 'b2', '2e', 'e1', '1e', 'e2', '2b', 'b9', '9b', 'b9', '9b', 'b7', '7b', 'b4', '4e', 'e1', '1b', 'b4', '4b', 'b7', '7e', 'e3', '3e', 'e4', '4b', 'b3', '3b', 'b2', '2b', 'b2', '2e', 'e3', '3e', 'e6', '6b', 'b4', '4b', 'b3', '3e', 'e2', '2b', 'b5', '5b', 'b0', '0b', 'b6', '6b', 'b1', '1b', 'b0', '0e', 'e6', '6e', 'e1', '1e', 'e5', '5e', 'e1', '1b', 'b5', '5f', 'fd'

然后转十六进制,再转十进制,得到:

[212, 232, 225, 244, 160, 247, 225, 243, 160, 230, 225, 243, 244, 161, 160, 212, 232, 229, 160, 230, 236, 225, 231, 160, 233, 243, 186, 160, 196, 196, 195, 212, 198, 251, 185, 178, 178, 225, 226, 185, 185, 183, 180, 225, 180, 183, 227, 228, 179, 178, 178, 227, 230, 180, 179, 226, 181, 176, 182, 177, 176, 230, 225, 229, 225, 181, 253]
发现都大于128,所以都减128,最后转ascii码得到flag.

key='d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9b2b2e1e2b9b9b7b4e1b4b7e3e4b3b2b2e3e6b4b3e2b5b0b6b1b0e6e1e5e1b5fd'
hex=[]
flag=''
for i in range(0,len(key)-1,2):
    zdh=key[i:i+2]
    hex.append(zdh)
for i in range(len(hex)):
    zdh1=hex[i]
    flag+=chr(int(int(zdh1,16))-128)
print(flag)
#flag{922ab9974a47cd322cf43b50610faea5}

我反正没这脑洞...

90.[MRCTF2020]千层套路

给了hint:Hint:密码均为四位数字 和压缩包名字有关联哦,Python真好用233

压缩包的文件名就是密码,然后压缩包套压缩包,套了好多层。

import zipfile
import os
import shutil

def iterative_unzip(initial_zip_path, output_folder):
    current_file_path = initial_zip_path
    
    while True:
        # 获取文件名和扩展名
        file_name, file_ext = os.path.splitext(current_file_path)
        
        # 检查是否为zip文件
        if file_ext != '.zip':
            # 复制最后解压的所有文件到脚本所在目录
            for file in os.listdir(os.path.dirname(current_file_path)):
                full_file_path = os.path.join(os.path.dirname(current_file_path), file)
                if os.path.isfile(full_file_path):
                    shutil.move(full_file_path, output_folder)
                    print(f"已移动文件:{full_file_path}{output_folder}")
            print(f"解压完成,最里层文件已移动到:{output_folder}")
            break

        # 获取压缩文件的密码
        password = file_name.split(os.sep)[-1]
        
        # 创建解压缩目录
        extract_dir = os.path.join(output_folder, file_name)
        os.makedirs(extract_dir, exist_ok=True)

        # 打开并解压缩文件
        with zipfile.ZipFile(current_file_path, 'r') as zip_ref:
            try:
                zip_ref.extractall(path=extract_dir, pwd=password.encode('utf-8'))
                print(f"成功解压:{current_file_path}{extract_dir}")
            except RuntimeError:
                print(f"无法解压 {current_file_path},可能密码错误。")
                break
        
        # 删除原始压缩包
        os.remove(current_file_path)

        # 查找解压后的下一个压缩包
        extracted_files = os.listdir(extract_dir)
        if len(extracted_files) != 1:
            print(f"解压后的文件不唯一或没有找到zip文件:{extracted_files}")
            break

        # 更新current_file_path为解压后的下一个压缩包
        current_file_path = os.path.join(extract_dir, extracted_files[0])

if __name__ == "__main__":
    initial_zip_path = "0573.zip"  # 初始压缩包路径
    output_folder = os.path.dirname(os.path.abspath(__file__))  # 脚本所在目录
    iterative_unzip(initial_zip_path, output_folder)

最里层是一个qr.txt

image-20240619221205422

应该是个二维码,像素值转图像

image-20240619221513116

MRCTF{ta01uyout1nreet1n0usandtimes}

flag{ta01uyout1nreet1n0usandtimes}

91.百里挑一

好多漂亮的壁纸,赶快挑一张吧!

附件是一个流量包,应该有很多图片,试着导出一下

image-20240619221810587

导出一堆图片,直接在流量包中搜flag,竟然还搜到了东西

image-20240619222150467

flag{ae58d0408e26e8f

image-20240620205247923

flag的另一半也能搜到,但是我不会搜。。。

26a3c0589d23edeec}

连起来flag{ae58d0408e26e8f26a3c0589d23edeec}

我今天搞了一天也没有搞懂wireshark的搜索功能,我想实现用正则表达式匹配搜索flag的后半段,但是一直没弄成功,哭了,好菜好菜。。。

92.[SUCTF2018]followme

又是一个流量包,搜索关键字

image-20240620205944333

SUCTF{password_is_not_weak}

不动啥意思,试着导出一下,看了半天,不会做。。。看了别人的wp,flag就是SUCTF{password_is_not_weak}...

flag{password_is_not_weak}

93.[MRCTF2020]CyberPunk

下载下来是exe文件,upx加壳了,脱壳ida打开。

直接搜索字符串就出来了

MRCTF{We1cOm3_70_cyber_security}

flag{We1cOm3_70_cyber_security}

94.[安洵杯 2019]Attack

附件是流量包,用foremost分离出一个压缩包,压缩包里面是flag.txt,但是被加密了,压缩包备注:这可是administrator的秘密,怎么能随便给人看呢?

导出http包,发现lsass.dmp

LSASS (Local Security Authority Subsystem Service) 是 Windows 操作系统中负责本地安全策略执行的系统进程,管理用户登录过程和安全性相关的任务。lsass.dmp 是由该进程生成的内存转储文件。

内存转储文件包含进程运行时的内存快照,用于诊断和调试系统问题。在安全领域,lsass.dmp 文件常用于密码提取和分析攻击行为,因为它可能包含敏感信息如用户的明文密码和哈希值。因此,黑客或渗透测试人员常利用这些内存转储文件进行密码恢复和其他攻击活动。

下面是一些与 lsass.dmp 相关的关键点:

  1. 生成方式:可以通过系统崩溃时自动生成,也可以使用特定工具手动生成,如 Task ManagerProcDump
  2. 敏感性lsass.dmp 文件包含的敏感信息意味着它是安全分析中的重要目标,也是需要保护的关键文件。
  3. 分析工具:常用的分析工具有 MimikatzVolatility 等,这些工具可以提取出其中的敏感信息。

lsass是windows系统的一个进程,用于本地安全和登陆策略。mimikatz可以从 lsass.exe 里获取windows处于active状态账号明文密码。本题的lsass.dmp就是内存运行的镜像,也可以提取到账户密码

//提升权限
privilege::debug
//载入dmp文件
sekurlsa::minidump lsass.dmp
//读取登陆密码
sekurlsa::logonpasswords full

发现password

image-20240620213456366

W3lc0meToD0g3

拿这个去解压压缩包:D0g3{3466b11de8894198af3636c5bd1efce2}

flag{3466b11de8894198af3636c5bd1efce2}

95.[UTCTF2020]basic-forensics

image-20240620213910078

不知道想考啥,直接搜搜出来了。。。

flag{fil3_ext3nsi0ns_4r3nt_r34l}

96.[BSidesSF2019]zippy

流量包,直接搜flag出来

image-20240620214047713

用foremost将压缩包提取出来,发现是加密的

image-20240620214512865

流量很少,尝试追一下,发现解压密码了

CTF{this_flag_is_your_flag}

flag{this_flag_is_your_flag}

97.[SUCTF 2019]Game

附件是一个png图片和一个魔方游戏

image-20240620215212613

图片好像有base64:U2FsdGVkX1+zHjSBeYPtWQVSwXzcVFZLu6Qm0To/KeuHg8vKAxFrVQ==

base64解码:Salted__34ymYRA|\TVK;$&Q:?)kKJkU

image-20240620215518249

网页有一段base32,解码一下:suctf{hAHaha_Fak3_F1ag}

不会了,看wp!

根据U2FsdGVkX1我们知道是DES加密,因为DES加密之后开头都是这几位,不过解密需要秘钥。(第一次知道

image-20240620220232010

suctf{U_F0und_1t}

flag{U_F0und_1t}

DES (Data Encryption Standard) 和 Triple DES (3DES) 是两种对称加密算法,虽然它们的核心加密机制相似,但有一些重要的区别。

DES (Data Encryption Standard)

  • 密钥长度: DES 使用 56 位密钥。
  • 加密轮数: DES 进行 16 轮 Feistel 加密。
  • 安全性: 由于密钥长度较短,DES 易于受到暴力破解攻击。现代计算能力可以在相对较短的时间内破解 DES 加密。
  • 算法结构: DES 使用 Feistel 网络结构,通过一系列的置换和替代操作实现加密。

Triple DES (3DES)

  • 密钥长度: 3DES 使用三个 56 位密钥,共计 168 位(实际安全性约为 112 位,因为存在已知的中间人攻击)。
  • 加密过程: 3DES 通过三次应用 DES 算法来增强安全性。
    • Encrypt-Decrypt-Encrypt (EDE) 模式: 先用第一个密钥加密,再用第二个密钥解密,最后用第三个密钥再次加密。
  • 安全性: 3DES 的安全性比 DES 高得多,因为需要大量的计算资源才能进行暴力破解。然而,3DES 由于较低的效率和更长的加密时间,在很多应用中逐渐被更现代的加密算法(如 AES)取代。
  • 算法结构: 3DES 实际上是对 DES 的重复应用,以增强其安全性。

总结

  1. 安全性: 3DES 比 DES 更安全,因为它通过三次应用 DES 算法增强了抗攻击能力。
  2. 性能: 3DES 比 DES 慢,因为它需要进行三次加密/解密操作。
  3. 使用情况: 由于安全性上的弱点,DES 在现代加密中几乎不再使用,而 3DES 仍在一些旧系统和应用中使用,但也逐渐被更安全和高效的算法(如 AES)所取代。

如果你需要选择加密算法,建议使用 AES,因为它在安全性和性能上都优于 DES 和 3DES。

确实是应该补一补密码基础了。。。

98.USB

image-20240620220617679

360压缩能直接解压出flag,但是并不是flag,winrar打开之后提示文件头损坏。

修复了文件头,多解压出一个233.png

用foremost分离key.ftm,分离出两个压缩包,打开发现是usb流量,用mumuzi的工具提取一下数据

image-20240620221327153

aababacbbdbdccccdcdcdbbcccbcbbcbbaababaaaaaaaaaaaaaaaaaakey{xinan}

分析出图片

image-20240620222006954

ci{v3erf_0tygidv2_fc0}

image-20240620223744217

一个作为密文,一个作为key,发现是维吉尼亚密码:fa{i3eei_0llgvgn2_sc0}

image-20240620224135632

flag{vig3ne2e_is_c00l}

99.[GUET-CTF2019]虚假的压缩包

数学题
n = 33
e = 3
解26

-------------------------
答案是

rsa题目,不会做,附件还有一个压缩包,加密的,解压密码是:答案是5(搁给我,我肯定想不到。。。

解压出来,有一个图片,改了高,还原之后

image-20240620225948035

提示异或5

image-20240620230013630

可以看到内容都被5异或了,写一个脚本进行还原(抄一个

original = open("亦真亦假",'r').read()
flag = open("flag",'w')
for i in original:
    tmp = int(i,16)^5
    flag.write(hex(tmp)[2:])

image-20240620230351863

可以看到504b0304,zip压缩包的文件头,将这些内容粘贴为16进制文件

image-20240620230418246

粘贴后保存为flag.zip

image-20240620230451883

打开之后发现是docx,直接改后缀docx打开

在文件尾部发现了flag

flag{_th2_7ru8_2iP_}

100.[RCTF2019]draw

cs pu lt 90 fd 500 rt 90 pd fd 100 rt 90 repeat 18[fd 5 rt 10] lt 135 fd 50 lt 135 pu bk 100 pd setcolor pick [ red orange yellow green blue violet ] repeat 18[fd 5 rt 10] rt 90 fd 60 rt 90 bk 30 rt 90 fd 60 pu lt 90 fd 100 pd rt 90 fd 50 bk 50 setcolor pick [ red orange yellow green blue violet ] lt 90 fd 50 rt 90 fd 50 pu fd 50 pd fd 25 bk 50 fd 25 rt 90 fd 50 pu setcolor pick [ red orange yellow green blue violet ] fd 100 rt 90 fd 30 rt 45 pd fd 50 bk 50 rt 90 fd 50 bk 100 fd 50 rt 45 pu fd 50 lt 90 pd fd 50 bk 50 rt 90 setcolor pick [ red orange yellow green blue violet ] fd 50 pu lt 90 fd 100 pd fd 50 rt 90 fd 25 bk 25 lt 90 bk 25 rt 90 fd 25 setcolor pick [ red orange yellow green blue violet ] pu fd 25 lt 90 bk 30 pd rt 90 fd 25 pu fd 25 lt 90 pd fd 50 bk 25 rt 90 fd 25 lt 90 fd 25 bk 50 pu bk 100 lt 90 setcolor pick [ red orange yellow green blue violet ] fd 100 pd rt 90 arc 360 20 pu rt 90 fd 50 pd arc 360 15 pu fd 15 setcolor pick [ red orange yellow green blue violet ] lt 90 pd bk 50 lt 90 fd 25 pu home bk 100 lt 90 fd 100 pd arc 360 20 pu home

这个网站有个解释器—>https://www.calormen.com/jslogo/

但是我借助了ai

import turtle
import random

# 设置颜色列表
colors = ['red', 'orange', 'yellow', 'green', 'blue', 'violet']

# 设置turtle
t = turtle.Turtle()
t.speed(0)

# 初始设置
t.penup()
t.left(90)
t.forward(500)
t.right(90)
t.pendown()
t.forward(100)
t.right(90)

# 绘制第一个图形
for _ in range(18):
    t.forward(5)
    t.right(10)
t.left(135)
t.forward(50)
t.left(135)

# 移动到新的位置
t.penup()
t.backward(100)
t.pendown()

# 设置随机颜色
t.color(random.choice(colors))

# 绘制第二个图形
for _ in range(18):
    t.forward(5)
    t.right(10)
t.right(90)
t.forward(60)
t.right(90)
t.backward(30)
t.right(90)
t.forward(60)

# 移动到新的位置
t.penup()
t.left(90)
t.forward(100)
t.pendown()
t.right(90)
t.forward(50)
t.backward(50)

# 设置随机颜色
t.color(random.choice(colors))

# 绘制第三个图形
t.left(90)
t.forward(50)
t.right(90)
t.forward(50)
t.penup()
t.forward(50)
t.pendown()
t.forward(25)
t.backward(50)
t.forward(25)
t.right(90)
t.forward(50)

# 移动到新的位置
t.penup()
t.color(random.choice(colors))
t.forward(100)
t.right(90)
t.forward(30)
t.right(45)
t.pendown()
t.forward(50)
t.backward(50)
t.right(90)
t.forward(50)
t.backward(100)
t.forward(50)
t.right(45)

# 移动到新的位置
t.penup()
t.forward(50)
t.left(90)
t.pendown()
t.forward(50)
t.backward(50)
t.right(90)

# 设置随机颜色
t.color(random.choice(colors))

# 绘制第四个图形
t.forward(50)
t.penup()
t.left(90)
t.forward(100)
t.pendown()
t.forward(50)
t.right(90)
t.forward(25)
t.backward(25)
t.left(90)
t.backward(25)
t.right(90)
t.forward(25)

# 设置随机颜色
t.color(random.choice(colors))

# 移动到新的位置并绘制
t.penup()
t.forward(25)
t.left(90)
t.backward(30)
t.pendown()
t.right(90)
t.forward(25)
t.penup()
t.forward(25)
t.left(90)
t.pendown()
t.forward(50)
t.backward(25)
t.right(90)
t.forward(25)
t.left(90)
t.forward(25)
t.backward(50)

# 移动到新的位置
t.penup()
t.backward(100)
t.left(90)
t.color(random.choice(colors))
t.forward(100)
t.pendown()
t.right(90)
t.circle(20)

# 移动到新的位置并绘制
t.penup()
t.right(90)
t.forward(50)
t.pendown()
t.circle(15)

# 设置随机颜色
t.color(random.choice(colors))

# 移动到新的位置并绘制
t.penup()
t.forward(15)
t.left(90)
t.pendown()
t.backward(50)
t.left(90)
t.forward(25)

# 移动到初始位置并绘制
t.penup()
t.home()
t.backward(100)
t.left(90)
t.forward(100)
t.pendown()
t.circle(20)

# 移动到初始位置
t.penup()
t.home()

# 完成绘图
turtle.done()

image-20240620231032008

flag{RCTF_HeyLogo}


终于刷完了BUUCTF中MISC模块中的前100道题!

有些题目确实棒,能学到很多东西。

有些题目出的确实一般,意义不大。

不过这是都是我自己的主观臆断。。。

没啥,结束结束!

posted @   山西小嫦娥  阅读(228)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示