吾爱破解新春红包题之Web系列解题过程(writeup)
本帖最后由 枫树恋上秋 于 2023-2-6 17:20 编辑👋 大家新年好,活动结束了,按照传统来分享一下Web系列题目的解题过程/思路。
😊 对于经常打CTF的师傅们来说这次Web题目(其实大多数为Misc)其实还是非常简单的。以下为我当时解题的整体路线,供大家参考。
😀 下面正式开始分析,先是视频相关
**📥** 我们可以先将视频下载下来以便于后面分析(将网址中的bilibili改为ibilibili即可下载视频)
---
**⛳ Flag6 (解题工具:**(https://github.com/ribt/dtmf-decoder)**)**
出现在视频第3秒,属于按键音(**DTMF**),很容易可以听出来按了6次,正好对应flag格式中的6个*,flag6{******}。
使用Audition将这一段音频提取出来保存为wav文件,这里命名为222.wav。
```powershell
#使用前面提供的工具,适当的设置下容错(-t)
python3 .\dtmf.py -t 25 .\222.wav
```
得到**flag6{590124}**
---
**⛳ Flag1**
**视频00:18中读出 flag1{52pojiehappynewyear}**
**⛳ Flag3**
**视频00:25右下角出现的iodj3{06i95dig} 凯撒密码位移-3位得到 flag3{06f95afd}**
---
**⛳ Flag2 视频00:22中的二维码,随便找一个解析工具 得到flag2{878a48f2}**
---
**⛳ Flag5**
00:31有电报声 使用Audition查看。易得
```
..-. .-.. .- --. ..... . .- .. - //摩斯密码
```
解码得到FLAG5EAIT 转换为flag格式为flag5{eait}
---
**⛳ Flag9**
仔细听视频结尾有一段听不明白的语音,在AU中选中范围进行反向(Ctrl+R)
仔细听可以得到**flag9{21c5f8}**
---
**⛳ Flag12**
单图盲水印,取视频灰色背景那一段导入**imagein**或者其他工具|
得到**flag12{3ac97e24}**
---
**⛳ Flag4**
出题人B站空间签名档 **ZmxhZzR7OWNiOTExMTd9** 进行base64解码即可得到**flag4{9cb91117}**
---
**⛳ Flag8**
在Audition中使用频谱图查看整个视频的音频部分可以很明显的发现**flag8{c394d7}**
---
**🌐接下来就是网站部分**
**⛳ FlagB**
直接拿到了网站又无法访问,可以去查找一下网站的dns解析,最后可以发现在txt解析中有以下内容
```
"_52pojie_2023_happy_new_year=flagB{substr(md5(uid+\"_happy_new_year_\"+floor(timestamp/600)),0,8)}"
```
用python将flagB解出来
```python
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对应至(http://2023challenge.52pojie.cn/)
Hosts文件一般位于”**C:\Windows\System32\drivers\etc”** 目录下
在微步云等平台查询一下52pojie.cn主站的域名解析[**52pojie.cn-域名情报 (threatbook.com)**](https://x.threatbook.com/v5/domain/52pojie.cn)
按如图所示 填入hosts文件中后保存,即可访问网站
现在就可以直接访问(http://2023challenge.52pojie.cn/)
在网站Header中可以找到关于flagA的相关提示
**X-Dynamic-Flag:** flagA{Header X-52PoJie-Uid Not Found},需要在Header中添加
X-52PoJie-Uid:uid 参数
我这里使用Postman进行讲解,在Header中添加相关参数后发送,可以再返回的Header中发现flagA
---
**⛳ Flag7**
网页源代码68行,一串二进制数,去掉空格进行二进制转字符串
简单几行python代码可以得到flag:**flag7{5d06be63}**
```python
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**编码,提供一个解题地址
(http://www.hiencode.com/brain.html)
得到**flag11{63418de7}**
---
**⛳ FlagC**
在网页源代码第60行提示需要进入/login界面,进入之后发现输入框为disabled状态
这里只需要删掉这个disabled,双击后删除即可
输入UID后提交提示不是admin用户,这时候查看cookie,有一个jwt_token
复制放到(https://jwt.io/)解析一下,将右侧的user改成admin,然后将新生成的jwt_token 复制回cookie处后刷新网页即可获得flagC
flagC那个不知道为什么,我只把user改成admin没过,后来加了kid=123456才过的(
盲水印那个flag应该只是单纯的傅里叶变换,不一定要用现成的工具 感谢分享,先收藏学习。。 先收藏,一步步的消化内容。。。。楼主辛苦了。 感谢分享,先收藏学习
楼主很用心~学习了 原来藏着这么多玄机 感谢分享,先收藏学习 603185 发表于 2023-2-6 08:28
flagC那个不知道为什么,我只把user改成admin没过,后来加了kid=123456才过的(
盲水印那个flag应该只是单纯 ...
是的,只是有现成工具拿着用了 flag8是直接显示在频谱图了吗 学习了,很多都没找到....