geekchallengectf2023
cheekin
题目描述:
1 | 请前往"三叶草小组Syclover"微信公众号输入flag获得flag |
关注公众号回复flag就可以得到一张图片
zsteg一把梭得到flag
最后flag为
1 | SYC{s4y_he110_t0_syclover} |
ez_smilemo
题目描述:
1 | 游戏通关即可得到flag内容,需要自行添加SYC{}包含。例: flag内容为 haha_haha 则最终flag为 SYC{haha_haha} |
下载附件
附件有个 Smilemo.exe ⽂件和 data.win
1 | data.win,gms游戏的标准数据文件,包括所有的游戏逻辑部分以及非逻辑部分的数据,理论上,只要你有了游戏的这个文件,就有了整个游戏,只需一个runner即可运行。data的内部结构包括一些数据块(Chunk)和标记性数据。Chunk有LANG, EXTN, SOND, AGRP, SPRT, PATH, SCPT, FONT, OBJT, ROOM, FUNC, STRG, TXTR, VARI, CODE等 |
搜到工具 UndertaleMod Tool
Releases · UnderminersTeam/UndertaleModTool
⽤ UndertaleModTool 打开 data.win文件
现在 Code 下⾯有⼀个叫 flag 的在⾥⾯找到了 flag 的 base64 内容
base解密
最后flag为
1 | SYC{sm1le_1s_@_n1ce_g@me} |
DEATH_N0TE
题目描述:
1 | "o2takuXX突然失踪了,你作为他的好朋友,决定去他的房间看看是否留下了什么线索..."。前置剧情题,flag有两段,隐写的信息有点多记得给信息拿全。 |
下载附件
根据 hint1: Stegsolve lsb,直接zsteg一把梭,发现两条base编码
1 | base1: |
1 | base2: |
base1解密
解密内容:
1 | "你找到了一本《DEATH NOTE》,好奇心驱使你翻开这本笔记,你阅读了使用规则,但是你惊讶地发现刚才的规则之中唯独没有第10条..." |
谜语看不懂,暂时放一放
base2解密
不知道为什么缺少文字,看样子zsteg有时候也不行,想到 hint1: Stegsolve lsb,发现完整编码
直接 save bin 下来为 1.txt 打开 1.txt 可以直接给内容复制下来
1 | IuS9oOe7p+e7reinguWvn+aJi+S4iua8hum7keiJsueahOeslOiusOacrO+8jOWGt+mdmeS4i+adpeeahOS9oOWPkeeOsOS6huiXj+WcqOWwgemdouacgOS4i+i+ueeahOS4gOihjOWwj+WtlzpTWUN7RDRAVGhfTjB0NF8iCiLkvaDmtY/op4jov4fmlbTkuKrnrJTorrDmnKzvvIzlj6/mg5zlhajmmK/nqbrnmb3pobXvvIzlhbbkuK3mnInkuIDpobXkuI3nn6XpgZPooqvosIHmkpXmjonkuobvvIzkvaDmnIDnu4jov5jmmK/nv7vliLDkuobnvLrlpLHnmoTpgqPkuIDpobUiCiLkvaDnlKjpk4XnrJTmtoLmirnnnYDlkI7pnaLkuIDpobXvvIzkuIrpnaLnvJPnvJPlh7rnjrDkuobpgZflpLHnmoTnl5Xov7kuLi4i |
重新解码
完整内容:
1 | "你继续观察手上漆黑色的笔记本,冷静下来的你发现了藏在封面最下边的一行小字:SYC{D4@Th_N0t4_" |
得到第一部分flag
1 | SYC{D4@Th_N0t4_ |
根据 hint2: 图片大小和像素点
根据前面的谜语:笔记上的文字却仿佛活了起来,在你眼中不断地放大缩小,你闭上了双眼
使用⽤ PS 进⾏缩⼩
保存设置后查看
提示我们查看死亡笔记,搜索死亡笔记字体
对照得到
1 | TkFNRV9vMnRha3VYWH0= |
base解密得到第二段flag:
1 | NAME_o2takuXX} |
拼接最后
1 | flag为SYC{D4@Th_N0t4_NAME_o2takuXX} |
下一站是哪儿呢
题目描述:
1 | 我和yxx去旅游,前一天还好好的,玩完《指挥官基恩》这个游戏就睡觉了,第二天晚上吃完饭她人就不见了,走之前留下了两张图片就消失了。你能帮我找找她坐哪个航班去哪个地方了嘛? flag格式:SYC{航班号_城市拼音},城市拼音首字母大写噢 |
下载附件
打开附件是⼀段聊天记录和⼀个压缩包(机场照片和猪猪侠图片)
百度识图机场图片发现是深圳宝安国际机场
当时之前做到这没思路了,后面一下给的猪猪侠图片有没有可能是隐写什么的,放010查看
果不其然,图片里藏有压缩包,手动提取出来查看压缩包文件
一眼标准银河字母,寻找对照表
对照得到
1 | I want to go to liquor city. |
百度搜索liquor city(酒城)
在https://www.flightera.net/网站里可以按机场查询航班号,机场选择深圳宝安国际机场(SZX)
在8月25号18:00到22:00排查到泸州的航班,可以找到这一条记录
最后flag为
1 | SYC{CZ8579_Luzhou} |
Qingwan心都要碎了
题目描述:
1 | Qingwan和Yxx一起去旅游,但是Qingwan睡的太死啦,Yxx丢下她一个人去玩了,她一觉起来只看见Yxx发的朋友圈,能帮Qingwan找到她吗? flag格式:SYC{地点名字} |
下载附件
关键图片
这两张图片都能证明yxx在重庆,第一张图片有重庆火锅前十强,第二张图片瓷器口古镇
接下来这张图片最关键
这张图上有三峡工程相关的文件
结合得到的关键词:重庆、三峡,百度地图搜索
确定是重庆中国三峡博物馆
最后flag为SYC{重庆中国三峡博物馆}
xqr
题目描述:
1 | Qrcode can deliver binary msg |
下载附件
⽤ 010 editor 打开看看发现后⾯还有⼀张 PNG 图⽚,⼿动分离⼀下
查看图片
双图我们会想到盲水印或者异或,显然是后者
异或需要大小一致,ps将75像素的二维码改成25的
使用stegsolve双图异或
手机微信扫描二维码得到flag
最后flag为
1 | SYC{hOp3_u_h@ve_Fun} |
DEATH_N1TE
题目描述:
1 | "你看见了《DEATH NOTE》上面的名字,这时,Arahat0给你传了两个文件,并留言:" "[他拥有死神之眼,请小心,他在找你,还剩1920秒...]" "<当前时间 10:52>"。flag有两段 |
下载附件
附件有 L.mp3 和 killer.webp
先处理音频文件
L.mp3 在最后的地⽅有⼀段很明显听着有问题 可以知道是⼀段 SSTV ⽤能扫 SSTV 的⼯具直接 Robot36 解码得到 flag 前半段
1 | SYC{H4xr0t0r |
killer.webp 发现是⼀组动图 ⼤⼩是 48*48
⽤ python 脚本把每张⼩图⽚进⾏分离
exp:
1 | from PIL import Image |
运行得到
分离出了 880 张图⽚ 先将这 880 张图⽚进⾏拼接 由题⽬描述 1920 10:52 可以猜出原图⼤⼩为 19201052 再由每张⼩图 4848 可知应该是切成了 40*22 ⽤ kali 上的⼯具 montage
1 | montage *.png -tile 40x22 -geometry +0+0 flag.png |
再使用gaps进行拼图
1 | gaps run ./flag.png newfalg.png --generations=30 --population=300 --size=48 |
图上的内容为 XzE0X0tpMTE0Un0=,base64 解密得到 flag 后半段
1 | _14_Ki114R} |
最后flag为
1 | SYC{H4xr0t0r_14_Ki114R} |
窃听风云
题目描述:
1 | Hacker捕获到了一段敌对公司的对话信息流量,你能从流量中分析出Jack的密码吗,flag为SYC{password} |
打开流量包,看到是 http 协议
看到这⾥有⼀段对话,有提⽰告诉我们应该要⽤ kali 下⾃带的那个 rockyou.txt 字典,那结合题⽬应该是⽤这个字典去爆破密码。 看⼀下流量包的特点,可以发现有很多 NTLM 协议认证过程中的流量包,⽽且这个 NTLM 协议的认证过程是基于 HTTP 协议的。
所以猜测这⾥应该是要我们去构造 Net-NTLMv2 Hash 然后去爆破密码 Net-NTLMv2 Hash 的结构如下
1 | [User name]::[Domain name]:[NTLM Server Challenge]:[HMAC-MD5]:[blob] |
我们⾸先看到, type3 认证消息
可以得到,
1 | NTLM Response : |
然后再看到 type2 质询消息
1 | NTLM Server Challenge : 2af71b5ca7246268 |
所以 Net-NTLMv2 Hash 的结构如下:
1 | jack::WIDGETLLC:2af71b5ca7246268:2d1d24572b15fe544043431c59965d30:0101000000000000040d962b02edd901e6994147d6a34af200000000020012005700490044004700450054004c004c004300010008004400430030003100040024005700690064006700650074004c004c0043002e0049006e007400650072006e0061006c0003002e0044004300300031002e005700690064006700650074004c004c0043002e0049006e007400650072006e0061006c00050024005700690064006700650074004c004c0043002e0049006e007400650072006e0061006c0007000800040d962b02edd90106000400020000000800300030000000000000000000000000300000078cdc520910762267e40488b60032835c6a37604d1e9be3ecee58802fb5f9150a001000000000000000000000000000000000000900200048005400540050002f003100390032002e003100360038002e0030002e0031000000000000000000 |
我们就可以⽤ hashcat 这个⼯具对 hash 进⾏⼀个破解
1 | hashcat -m 5600 aaa.txt rockyou.txt |
最后flag为SYC{iamjackspassword}
extractMe
下载附件
简单crc爆破
exp:
1 | import binascii |
运行得到
最后flag为
1 | SYC{_cR@ck_1s_Useful_sometime$_} |
时代的眼泪
题目描述:
1 | 2001年的大屁股电脑,到了2023年会被揍得多惨呢? |
下载附件
这题方法挺多,我列出常用的方法:
方法一:
使用diskgenius挂载磁盘
在ALL USER目录里面的document里的picture目录下的一张图片里面出来的flag
方法二:
磁盘取证,使用工具AXIOM Process
方法三:
利用ms08-067漏洞
把虚拟机导⼊ VM 之后,发现有密码才能登录
kali攻击机:192.168.74.140
靶机:192.168.74.141
开启 msfconsole
1 | search ms08 |
1 | shell |
修改完密码登录获得flag
方法四:
7z查看vmdk文件,在Tears_of_the_times-disk1.vmdk\Documents and Settings\Administrator\Local Settings\Application Data\Microsoft
目录下找到一张图片,打开就能看到flag
方法五:
1 | 取证大师 -> 最近访问 -> 图片内容获得flag |
最后flag为
1 | SYC{You_defeated_me_after_22_years} |
窃听风云-v2
题目描述:
1 | 这次Hacker捕获到了Jack登录邮件系统的流量,你还能从流量中分析出Jack的密码吗,flag为SYC{password} |
方法其实和前面那道题一模一样,但是服务器名要变一下,应该是WidgetLLC.Internal
构造NTLMv2爆破文件:
1 | jack::WidgetLLC.Internal:3E3966C8CACD29F7:DDD46FD8F78C262EAE16918F66185497:010100000000000050FD26D235EDD9011219408CCB8A364800000000020012005700490044004700450054004C004C0043000100100043004C00490045004E00540030003300040024005700690064006700650074004C004C0043002E0049006E007400650072006E0061006C000300360043004C00490045004E005400300033002E005700690064006700650074004C004C0043002E0049006E007400650072006E0061006C00050024005700690064006700650074004C004C0043002E0049006E007400650072006E0061006C000700080050FD26D235EDD90106000400020000000800300030000000000000000000000000300000C78E803920758EC5672C36696EE163F6A4E61C8B5463C247DAEF8571677995A40A001000000000000000000000000000000000000900200053004D00540050002F0075006E007300700065006300690066006900650064000000000000000000 |
使用hashcat和rockyou字典进行爆破
1 | hashcat -m 5600 bbb.txt rockyou.txt |
最后flag为
1 | SYC{jack100589barney} |
DEATH_N2TE
题目描述:
1 | “你知道了真相,正带上《DEATH NOTE》准备逃离,恰好,Muscial发给你一个视频,并说:” “[这里记下了他的真名以及照片,请写在那本笔记上面,我和Arahat0都被他看见了真名…]”。 |
附件只有⼀个 kira.mp4,猜测提取其中的像素,提取之后可以看到有些图片中存在一列白色像素,并且是按从左到右的顺序,尝试把这些列拼接起来
exp:
1 | import cv2 |
运行得到
最后flag为
1 | SYC{we1c0m4_T0_De@tH_W0r1d} |
geekchallengectf2024
2024 geek challenge!签到
题目描述:
1 | 关注小组公众号三叶草小组Syclover,回复关键词 “2024 geek challenge!签到” 进行签到 |
公众号回复关键词 “2024 geek challenge!签到”得到flag
最后flag为
1 | SYC{weLc0mE-tO-2_o_2_100-GeeK@cha11Enge!!} |
ez_jpg
题目描述:
1 | 点击就送 |
下载附件
base解密
发现是jpg文件十六进制字节反转了,直接reverse
010改宽从528到628
保存重新打开文件
最后flag为
1 | SYC{Steg_4nd_Zip_1s_G00d!} |
Truth of Word
题目描述:
1 | Word文件真正的奥妙 |
下载附件
第一部分全选加修改字体颜色
第二部分在宏中
第三部分改后缀.zip,word/media下有 flag03.png
最后flag为
1 | SYC{W0rd_H@5@_Ama1n9_StrUCtu3e! |
Welcome_jail
题目描述:
1 | 就是一个简单的pyjail啦 |
开启环境
发现这些都被过滤了
1 | ['import', 'os', 'breakpoint', 'input', 'eval', 'exec', 'help', "'", '"'] |
chr绕过
1 | print({}.__class__.__mro__[1].__subclasses__()[-4].__init__.__globals__[chr(112)+chr(111)+chr(112)+chr(101)+chr(110)](chr(99)+chr(97)+chr(116)+chr(32)+chr(47)+chr(104)+chr(111)+chr(109)+chr(101)+chr(47)+chr(99)+chr(116)+chr(102)+chr(47)+chr(102)+chr(108)+chr(97)+chr(103)).read()) |
最后flag为SYC{f628e4b9-2e19-40c2-95ca-89eb243d330a}
雪
题目描述:
1 | 又到了白色相簿的季节 |
下载附件
发现有密码。010查看压缩包文件
末尾有base编码。赛博厨子一把梭
压缩包为W3LC0M4,解压压缩包
根据图片名称猜测是盲水印
又因为题目名称是雪,文本是white名,猜测是snow隐写,密码为Th1si4st8eK3y
最后flag为SYC{Ma1by_y0u_w1ll_l1k3_sn0w}
I_wanna_go_to_SYC
题目描述:
1 | BoBo人觉得iwanna很好玩,但是他打不过去能帮帮它吗? 题目附件下载链接https://pan.baidu.com/s/1JCqJ8TkXBYJjPUVJbHMlvg 密码:game |
下载附件
gm8decompiler转exe为gmk
再用gamemaker打开gmk文件
最后flag为
1 | SYC{NO_PRObLEM_yOU_DO_It_G1Me_LOVER} |
ez_pcap_1
题目描述:
1 | 黑客通过外网getshell进入内网,在域渗透横向文件传输时传送了一个危险文件,你能找到这个危险文件吗? |
下载附件
搜索字符串SYC
最后flag为
1 | SYC{smb_pcapng_1s_g00d!} |
cimbar
题目描述:
1 | What is cimbar |
下载附件
百度搜索到用摄像头传输文件 —— Cimbar - 哔哩哔哩
对照得到
1 | 01010011010110010100001101111011010000010110111000110000011101000110100000110011 |
解码二进制即可获得flag
最后flag为
1 | SYC{An0th3r_Am@z1n9_QR_Co4e} |
舔狗的觉醒
题目描述:
1 | 听说爱自己的人会有好运哦 |
下载附件
爆破密码得到88888888
解压压缩包
看到文件头为 05 b4 30 40 ,而压缩包文件头为 50 4b 03 04,每个字节被反转 了,写个脚本转换下
exp:
1 | # 读取文件内容 |
运行得到
转为zip文件保存打开pdf文件
发现有密码,在线pdf解密
下载并打开解锁后的pdf文件,移除图片得到flag
最后flag为
1 | SYC{YOu_arE_yOuR_Own_hero} |
乌龟
题目描述:
1 | starven师傅养了一直会唱歌的乌龟,但是他走丢了,你能帮starven师傅找到他吗(音频文件不只一种用法) |
下载附件
一眼sstv隐写
得到密码:Be4uti7ulSun5e7
deepsound解密
查看secret文本内容
1 | to draw_s pu setxy -400 200 pd repeat 18 [fd 5 lt 10 wait 2] repeat 8 [fd 5 lt 10 wait 2] repeat 21 [fd 5 rt 10 wait 2] pu setxy -350 200 pd fd 50 wait 5 pu setxy -350 200 pd rt 100 fd 50 wait 5 pu setxy -350 200 pd rt 130 fd 75 wait 5 pu setxy -220 200 pd rt 130 repeat 27 [fd 8 lt 10 wait 2] pu setxy -430 70 pd lt 130 fd 100 wait 5 pu setxy -480 70 pd lt 90 fd 100 wait 5 pu setxy -420 70 pd fd 100 lt 90 fd 50 lt 90 fd 100 wait 5 pu setxy -350 70 pd rt 90 fd 70 rt 90 fd 50 rt 90 fd 70 wait 5 pu setxy -280 20 pd lt 90 fd 50 rt 90 fd 70 wait 5 pu setxy -250 70 pd rt 180 fd 100 wait 5 pu setxy -200 70 pd rt 90 fd 100 wait 5 pu setxy -130 70 pd lt 130 fd 30 rt 130 fd 110 rt 90 fd 30 wait 5 pu setxy -130 -20 pd lt 180 fd 40 wait 5 pu setxy -70 70 pd fd 70 wait 5 pu setxy -70 70 pd rt 90 fd 50 lt 90 fd 70 wait 5 pu setxy -70 20 pd rt 90 fd 50 lt 90 fd 70 wait 5 pu setxy 20 -30 pd fd 70 wait 5 pu setxy 120 70 pd repeat 18 [fd 5 rt 10 wait 2] pu setxy 120 70 pd lt 90 fd 100 wait 5 pu setxy 180 70 pd fd 50 lt 90 fd 50 wait 5 pu setxy 230 70 pd rt 90 fd 100 wait 5 pu setxy 260 70 pd lt 90 fd 50 wait 5 pu setxy 285 70 pd rt 90 fd 100 wait 5 pu setxy 260 -30 pd lt 90 fd 50 wait 5 pu setxy 340 70 pd rt 90 fd 100 wait 5 pu setxy 340 70 pd lt 30 fd 115 wait 5 pu setxy 398 -30 pd lt 150 fd 100 wait 5 pu setxy 420 70 pd rt 90 fd 100 wait 5 pu setxy 470 70 pd rt 90 fd 100 wait 5 pu setxy -520 -70 pd lt 90 fd 60 wait 5 pu setxy -490 -70 pd rt 90 fd 100 wait 5 pu setxy -520 -170 pd lt 90 fd 60 wait 5 pu setxy -420 -70 pd rt 90 fd 100 wait 5 pu setxy -420 -70 pd lt 30 fd 115 wait 5 pu setxy -362 -170 pd lt 150 fd 100 wait 5 pu setxy -270 -70 pd lt 90 repeat 27 [fd 8 lt 10 wait 2] lt 180 fd 40 wait 5 pu setxy -230 -120 pd rt 90 fd 30 wait 5 end clearscreen draw_s |
logo编程语言,在线画图
最后flag为
1 | SYC{TU3T1E_P4INTING} |
ez_climbstairs
题目描述:
1 | 动态规划算法入门题目你知道如何爬楼梯吗?爬对100次就给你flag |
开启环境
经典爬楼梯,上脚本
exp:
1 | import select |
运行得到flag
最后flag为
1 | SYC{9b00ad58-b303-43d8-b831-930a53be6bf2} |
doSomeMath
题目描述:
1 | lhRaMk7在没通过他的小升初数学考试之后来GSBP老师这里补习,发现他一道题都做不出来,大学生们能帮帮他吗 |
源码
1 | import os |
#result=”(((1+1+1+1+1+1+1+1+1+1)(1+1+1+1+1+1+1+1+1+1)-1)(1+1+1+1+1+1+1+1+1+1)(1+1+1+1+1+1+1+1+1+1))-(1+1+1+1)(1+1+1+1+1+1+1)”
().le(()) 结果为True,把1替换成 ().le(()) 结果为True ,bool值 True+True=2
1 | (((().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(()))*(().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(()))-().__le__(()))*(().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(()))*(().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())))-(().__le__(())+().__le__(())+().__le__(())+().__le__(()))*(().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())+().__le__(())) |
上面的式子经过eval计算后的结果为9872
最后flag为
1 | SYC{8e66db99-3ade-4341-a5f0-101640e64cc6} |
Forensics
题目描述:
1 | 听说爱冒险的lhRaMk7师傅最近换了个浏览器,似乎藏了一些有用的东西… |
Geek2024.ad1
文件,FTK Imager打开
在Geek2024用户的documents文件夹下有一个Adventure.txt,看起来像是一个base64隐写的东西
base隐写得到二进制数
二进制七位一组转ascll
Geek2024Syc,拿到了这个密码。
寻找火狐浏览器相关文件,在 Geek2024/AppData/Roaming/Mozilla/Firefox/Profiles/uf11qmty.default
把配置文件放下来,就得到了火狐的登录凭证。用firefox_decrypt跑出火狐凭证
1 | python firefox_decrypt.py E:\misc\隐写\firepwd-master\firepwd-master\firefox_decrypt-master\firefox_decrypt-master\uf11qmty.default |
最后flag为
1 | SYC{F1ref0x_F0r3ns1cs_Mas7er} |
hard_jail
题目描述:
1 | waf好短,看起来好简单OUO |
nc连上,提示输入show显示源码
1 | black=["(",")","\'","\"","@"] |
黑名单列表置空
1 | black=[] |
最后flag为
1 | SYC{a23fcbe2-5beb-435f-8d44-fd77777bae17} |
Secret of Starven
题目描述:
1 | 有黑客进入了Starven的电脑,还偷走了他的学习资料,你能帮助他挽回尊严嘛 |
下载附件
SMB流量,直接导出SMB对象
图片没用,不过确实是美女
爆破压缩包密码,利用rockyou.txt字典
解压压缩包得到flag
最后flag为
1 | SYC{D0n7_spre0d_St@rven's_s3crEt} |
ez_raw
题目描述:
1 | sh4d0w师傅想要考验合作能力,所以塞了点秘密在二进制文件在里面,你们能合作找到这个秘密吗? |
下载附件
明显的磁盘取证,但是是win10的,vol2会出问题,需要配置vol3才行 直接关键字搜索flag,有一个flag.kdbx,提示了有二进制文件,搜索常见后缀能看见program.elf
lovemen扫描文件搜索关键字flag得到
搜索关键词elf
导出文件
kdbx是一种特殊的数据库文件,用于保存账户和密码,有一个keepass的软件可以直接打开
找到密钥所在位置,很明显是加密过的,凯撒解密10位得到原来的密钥 key:bingfengwithsh4d0w
uoi:lsxqpoxqgsdrcr4n0g 凯撒Caesar解码得到:key:bingfengwithsh4d0w
IDA打开分析program.elf,写出逆向代码拿到flag
1 | flag='' |
最后flag为
1 | SYC{Rew@rd_F0r_7our_c0op3rat1on} |
ez_pcap_2
题目描述:
1 | 【前言】黑客通过外网getshell进入内网,在域渗透横向文件传输时传送flag文件,想必大家在ez_pcap_1已经秒了,轻易的找到了这个flag文件,点击就送 |
域环境的域名:root.com:
文件传输时所用的smb版本号:0x0210
NTLM认证时挑战/咨询机制加密hash生成request/response所用到的密钥:44074afa7d98863c
DNS服务器所处机器的机器名:WIN-GP726AF9QHQ.root.com
音乐大师
题目描述:
1 | parar师傅励志成为下一位名侦探柯南,发现藏匿在音乐中的秘密却犯难,你有什么办法帮助他吗? |
下载附件
首先拿到附件拿到一个secret.wav的音频文件,还有一张图片,本来这道题出在新生赛是为了培养一下 对于音频题目的数据分析能力的 对于图片的信息处理我们发现存在一个lab隐写
这里的Hint是提示去搜索音频隐写相关的内容,引导去搜索音频的lsb隐写 对图片再进行一步foremost提取
发现存在一个音频文件 由于LSB隐写(Least Significant Bit Steganography)是一种将秘密信息嵌入到载体数据(如图像或音 频)中的技术。它通过修改载体数据的最低有效位来隐藏信息。由于最低有效位的变化对载体数据的整 体影响很小,因此这种方法可以在不显著改变载体数据的情况下隐藏信息 对于wav音频是float32的样品数据,我们可以借助python的librosa库来分析下得到的音频的浮点样品数 据 由于此时我们得到两个音频数据,进一步分析下音频数据的区别 脚本如下
exp:
1 | import librosa |
由于整个样品浮点数据比较大,我们这里不断调试下观察的数据长度,发现如下
1 | ata1: [ 2.33650208e-05 6.55651093e-06 8.46385956e-06 1.83582306e-05 |
分析了下发现只有前面148位的数据是不同的(本来想放出hint flag位数是37位的,由于有师傅做出来了 就没有继续放),那么问题就在这里,由于原音频的浮点数据是干净的,所以我们只需要通过借助加密的 样品数据减去每一个对应的原数据就是加密的数据 如下
1 | [np.float32(1.9073486e-06), np.float32(1.9073486e-06), np.float32(9.536743e-07), |
观察一下这组数据, 由于数据太小我们不好分析(1.9073486e-06 是一个非常小的浮点数,这个数值大约等于 0.0000019073486),我们可以尝试对应扩大来转换为整数,这里扩大到1000000倍(刚好能对应转换为 整型数据来分析)
exp:
1 | import librosa |
得到数据
1 | [np.float32(19.073486), np.float32(19.073486), np.float32(9.536743), np.float32(39.339066), np.float32(19.073486), np.float32(19.073486), np.float32(29.802322), np.float32(19.073486), np.float32(19.073486), np.float32(9.536743), np.float32(9.536743), np.float32(39.339066), np.float32(19.073486), np.float32(39.339066), np.float32(29.802322), np.float32(39.339066), np.float32(19.073486), np.float32(39.339066), np.float32(19.073486), np.float32(39.339066), np.float32(19.073486), np.float32(29.802322), np.float32(9.536743), np.float32(19.073486), np.float32(19.073486), np.float32(39.339066), np.float32(19.073486), np.float32(29.802322), np.float32(19.073486), np.float32(19.073486), np.float32(39.339066), np.float32(39.339066), np.float32(19.073486), np.float32(9.536743), np.float32(39.339066), np.float32(9.536743), np.float32(19.073486), np.float32(19.073486), np.float32(9.536743), np.float32(39.339066), np.float32(19.073486), np.float32(9.536743), np.float32(9.536743), np.float32(29.802322), np.float32(19.073486), np.float32(19.073486), np.float32(39.339066), np.float32(39.339066), np.float32(19.073486), np.float32(29.802322), np.float32(9.536743), np.float32(29.802322), np.float32(19.073486), np.float32(39.339066), np.float32(19.073486), np.float32(19.073486), np.float32(19.073486), np.float32(39.339066), np.float32(19.073486), np.float32(9.536743), np.float32(19.073486), np.float32(19.073486), np.float32(39.339066), np.float32(39.339066), np.float32(19.073486), np.float32(19.073486), np.float32(29.802322), np.float32(19.073486), np.float32(19.073486), np.float32(29.802322), np.float32(39.339066), np.float32(39.339066), np.float32(19.073486), np.float32(39.339066), np.float32(19.073486), np.float32(19.073486), np.float32(19.073486), np.float32(19.073486), np.float32(39.339066), np.float32(39.339066), np.float32(19.073486), np.float32(29.802322), np.float32(9.536743), np.float32(39.339066), np.float32(19.073486), np.float32(29.802322), np.float32(9.536743), np.float32(19.073486), np.float32(19.073486), np.float32(29.802322), np.float32(39.339066), np.float32(29.802322), np.float32(19.073486), np.float32(19.073486), np.float32(39.339066), np.float32(39.339066), np.float32(19.073486), np.float32(29.802322), np.float32(19.073486), np.float32(39.339066), np.float32(19.073486), np.float32(29.802322), np.float32(19.073486), np.float32(19.073486), np.float32(19.073486), np.float32(39.339066), np.float32(19.073486), np.float32(9.536743), np.float32(19.073486), np.float32(19.073486), np.float32(39.339066), np.float32(39.339066), np.float32(19.073486), np.float32(9.536743), np.float32(39.339066), np.float32(19.073486), np.float32(9.536743), np.float32(39.339066), np.float32(9.536743), np.float32(39.339066), np.float32(19.073486), np.float32(19.073486), np.float32(39.339066), np.float32(39.339066), np.float32(19.073486), np.float32(9.536743), np.float32(9.536743), np.float32(39.339066), np.float32(19.073486), np.float32(29.802322), np.float32(39.339066), np.float32(39.339066), np.float32(19.073486), np.float32(29.802322), np.float32(39.339066), np.float32(9.536743), np.float32(19.073486), np.float32(29.802322), np.float32(39.339066), np.float32(9.536743), np.float32(9.536743), np.float32(29.802322), np.float32(9.536743), np.float32(19.073486), np.float32(19.073486), np.float32(39.339066), np.float32(39.339066), np.float32(19.073486)] |
发现此时转换为整数的话小数点后面的数据影响不大,由此转换可得数据
1 | [19, 19, 9, 39, 19, 19, 29, 19, 19, 9, 9, 39, 19, 39, 29, 39, 19, 39, 19, 39, 19, |
观察数据发现只有9,19,29,39四种数据,一共有148位数据,flag位数一般在24-42左右 结合数据来看可能存在是4位一组一共37组,至于对于9,19,29,39四种数据的处理,由于只有4位数据可 以被替代,在进制中最可能的就是2进制,由于只有0和1两个数据,2进制数据若是两个组合,那么刚好 可能存在的就是00,01,11,10,按顺序排可能的情况就是
1 | 00,01,10,11 |
两种 分别尝试把9,19,29,39去替换可以获得两个二进制数据 脚本如下
1 | import librosa |
二进制一把梭
最后flag为
1 | SYC{wav_LSB_but_You_can_get_M3_Coll!} |