1254qwer 发表于 2023-2-6 14:47

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

# 吾爱春节web题writeup

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

> 原视频:[吾爱破解【2023春节】解题领红包之Web题\_哔哩哔哩\_bilibili](https://www.bilibili.com/video/BV123411R7K6/)

## flag1

明牌



`flag1{52pojiehappynewyear}`

## flag2

直接扫这个二维码



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

可以看到flag2就在参数里

`flag2{878a48f2}`

## flag3

视频00:26右下角



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

## flag4

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



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{590124}`

## flag7

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

打开网站:(http://c.biancheng.net/c/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{c394d7}`

## flag9

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

au导入,效果-反向

可以听到flag9

`flag9{21c5f8}`

## flag10

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

## flag11

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



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

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

百度找到解码网站:(https://www.splitbrain.org/services/ook)

粘贴,解码,得到flag11

`flag11{63418de7}`

## flag12

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

## flagA

视频中提到了一个网址

https://2023challenge.52pojie.cn

但无法通过浏览器访问

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

```bash
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

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

```bash
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为例),再试一次

```bash
curl -H "X-52PoJie-Uid: 722361" -vhttps://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记录

```bash
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)记录

```

想到了(https://github.com/ustclug/hackergame2019-writeups/blob/master/official/Happy_LUG/README.md)

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

```bash
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_new_year\_",当前时间戳除以600向下取整的值(这一点证明该串仅在10分钟内有效)

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

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

```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()
print('flagB{' + d + '}')
```

## flagC

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

话不多说,直接开干

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

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

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

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

```bash
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目录:

```bash
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粘进去



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

```bash
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分钟时刻过期)

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

偷偷变强大
页: [1] 2 3
查看完整版本: 【2023】吾爱春节红包web题writeup