吾爱破解新春红包题之Web系列解题过程(writeup)

查看 89|回复 9
作者:枫树恋上秋   
 大家新年好,活动结束了,按照传统来分享一下Web系列题目的解题过程/思路。
 对于经常打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 上传

下载次数, 下载附件

603185   

flagC那个不知道为什么,我只把user改成admin没过,后来加了kid=123456才过的(
盲水印那个flag应该只是单纯的傅里叶变换,不一定要用现成的工具
AdmiMVP1   

感谢分享,先收藏学习。。
knight0531   

先收藏,一步步的消化内容。。。。楼主辛苦了。
zhoudl   

感谢分享,先收藏学习
ysy2001   

感谢分享,先学习。
jackyyue_cn   

楼主很用心~学习了 原来藏着这么多玄机
随梦期初   

感谢分享,先收藏学习
枫树恋上秋
OP
  


603185 发表于 2023-2-6 08:28
flagC那个不知道为什么,我只把user改成admin没过,后来加了kid=123456才过的(
盲水印那个flag应该只是单纯 ...

是的,只是有现成工具拿着用了
jackyyue_cn   

flag8是直接显示在频谱图了吗
您需要登录后才可以回帖 登录 | 立即注册

返回顶部