对于经常打CTF的师傅们来说这次Web题目(其实大多数为Misc)其实还是非常简单的。以下为我当时解题的整体路线,供大家参考。
1.png (93 KB, 下载次数: 0)
下载附件
2023-2-6 07:09 上传
下面正式开始分析,先是视频相关
我们可以先将视频下载下来以便于后面分析(将网址中的bilibili改为ibilibili即可下载视频)
⛳ Flag6 (解题工具:RIBT/DTMF 解码器:从拨号音的录音中提取电话号码。 (github.com))
出现在视频第3秒,属于按键音(DTMF),很容易可以听出来按了6次,正好对应flag格式中的6个*,flag6{**}。
使用Audition将这一段音频提取出来保存为wav文件,这里命名为222.wav。
2.png (90.05 KB, 下载次数: 0)
下载附件
2023-2-6 07:10 上传
#使用前面提供的工具,适当的设置下容错(-t)
python3 .\dtmf.py -t 25 .\222.wav
3.png (85.95 KB, 下载次数: 1)
下载附件
2023-2-6 07:10 上传
得到flag6{590124}
⛳ Flag1
视频00:18中读出 flag1{52pojiehappynewyear}
⛳ Flag3
视频00:25右下角出现的iodj3{06i95dig} 凯撒密码位移-3位得到 flag3{06f95afd}
⛳ Flag2 视频00:22中的二维码,随便找一个解析工具 得到flag2{878a48f2}
4.png (87.65 KB, 下载次数: 0)
下载附件
2023-2-6 07:11 上传
⛳ Flag5
00:31有电报声 使用Audition查看。易得
5.png (178.78 KB, 下载次数: 0)
下载附件
2023-2-6 07:11 上传
..-. .-.. .- --. ..... . .- .. - //摩斯密码
解码得到FLAG5EAIT 转换为flag格式为flag5{eait}
⛳ Flag9
仔细听视频结尾有一段听不明白的语音,在AU中选中范围进行反向(Ctrl+R)
6.png (365.41 KB, 下载次数: 1)
下载附件
2023-2-6 07:11 上传
仔细听可以得到flag9{21c5f8}
⛳ Flag12
单图盲水印,取视频灰色背景那一段导入imagein或者其他工具|
7.png (217.62 KB, 下载次数: 0)
下载附件
2023-2-6 07:12 上传
得到flag12{3ac97e24}
8.png (489.82 KB, 下载次数: 0)
下载附件
2023-2-6 07:12 上传
⛳ Flag4
出题人B站空间签名档 ZmxhZzR7OWNiOTExMTd9 进行base64解码即可得到flag4{9cb91117}
9.png (46.45 KB, 下载次数: 1)
下载附件
2023-2-6 07:13 上传
⛳ Flag8
在Audition中使用频谱图查看整个视频的音频部分可以很明显的发现flag8{c394d7}
10.png (25.32 KB, 下载次数: 1)
下载附件
2023-2-6 07:13 上传
接下来就是网站部分
⛳ FlagB
直接拿到了网站又无法访问,可以去查找一下网站的dns解析,最后可以发现在txt解析中有以下内容
"_52pojie_2023_happy_new_year=flagB{substr(md5(uid+\"_happy_new_year_\"+floor(timestamp/600)),0,8)}"
11.png (33.88 KB, 下载次数: 0)
下载附件
2023-2-6 07:13 上传
用python将flagB解出来
from math import floor
from time import time
from hashlib import md5
a = floor(time()/600)
UID = '570826' # 自己的UID
data = str(UID)+'_happy_new_year_'+str(a) # 拼凑字符串
md50_8 = md5(data.encode()).hexdigest()[:8] #计算md5,取前8位
flagB = f'flagB{{{md50_8}}}'
print(flagB)
⛳ FlagA
直接访问https//2023challenge.52pojie.cn/没有找到对应的地址,在视频的00:34有提示又与主站处于同一台服务器,这里可以通过修改hosts,将ip对应至https://2023challenge.52pojie.cn/
Hosts文件一般位于”C:\Windows\System32\drivers\etc” 目录下
在微步云等平台查询一下52pojie.cn主站的域名解析52pojie.cn-域名情报 (threatbook.com)
按如图所示 填入hosts文件中后保存,即可访问网站
12.png (39.12 KB, 下载次数: 0)
下载附件
2023-2-6 07:14 上传
现在就可以直接访问https://2023challenge.52pojie.cn/
在网站Header中可以找到关于flagA的相关提示
X-Dynamic-Flag: flagA{Header X-52PoJie-Uid Not Found},需要在Header中添加
X-52PoJie-Uid:uid 参数
13.png (25.83 KB, 下载次数: 0)
下载附件
2023-2-6 07:14 上传
我这里使用Postman进行讲解,在Header中添加相关参数后发送,可以再返回的Header中发现flagA
14.png (84.21 KB, 下载次数: 0)
下载附件
2023-2-6 07:14 上传
⛳ Flag7
网页源代码68行,一串二进制数,去掉空格进行二进制转字符串
简单几行python代码可以得到flag:flag7{5d06be63}
import libnum
data = '01 1 001 1 001 1 01 1 0001 1 00001 01 1 001 1 1 001 1 0111 011 1 101100 1 1 0 10 1 011 0 01 0000 1 10000 001 1 01 1 0 011 0 00 10 011 0 010 100 1 1011 000 1 1 0 0 11 01111101'
data = data.replace(' ','')
data = libnum.b2s(data)
print(data)
#b'flag7{5d06be63}'
⛳ Flag 10
脑电波没对上,应该还是在这串二进制里面
⛳ Flag11
网页源代码69行,二进制数下方,很明显的brainfuck编码,提供一个解题地址
CTF在线工具-在线Brainfuck加密|在线Brainfuck解密|Brainfuck|Brainfuck原理|Brainfuck算法 (hiencode.com)
得到flag11{63418de7}
⛳ FlagC
在网页源代码第60行提示需要进入/login界面,进入之后发现输入框为disabled状态
15.png (16.43 KB, 下载次数: 1)
下载附件
2023-2-6 07:15 上传
这里只需要删掉这个disabled,双击后删除即可
输入UID后提交提示不是admin用户,这时候查看cookie,有一个jwt_token
16.png (51.36 KB, 下载次数: 1)
下载附件
2023-2-6 07:15 上传
复制放到jwt.io解析一下,将右侧的user改成admin,然后将新生成的jwt_token 复制回cookie处后刷新网页即可获得flagC
17.png (64.63 KB, 下载次数: 0)
下载附件
2023-2-6 07:15 上传
18.png (10.62 KB, 下载次数: 0)
下载附件
2023-2-6 07:15 上传