Sayon 发表于 2024-2-25 00:02

吾爱 2024 春节解题领红包 Web 题 WriteUp


# 吾爱 2024 春节解题领红包 Web 题 WriteUp

Web(×)   Misc(√)

辛苦出题大大,整体体验感不错。小问题就是难度设置不是很舒服,下面也会提到x。

---

## 正文

### flag1{52pj2024}

视频第 2 秒,白色亮圈从中心扩大的时候,很容易发现后面有字(始终保持黑色的区域)。我直接看出来了,因为是有意义的内容。也可进行叠加如下:

- 逐帧导出视频

```powershell
ffmpeg -i input_video.mp4 output/frame%d.jpg
```

- Photoshop 中进行线性叠加



---

### flag2{xHOpRP}

视频第 5 秒开始的二维码,用 Photoshop 拼接后反相,识别后得到网址 https://2024challenge.52pojie.cn/index.html(下称“**主网址**”)。登录后在响应标头中即可看到。



> 这么前面的 flag,然后我就一直在视频中找ww

> 同时还看到了 flag4_flag10.png 这张图片。

---

### flag3{GRsgk2}

视频第 0 秒,和 flag1 一样直接看了。或许有一些我不知道的处理方法,希望各位大神指点。

---

### flag4{YvJZNS}

flag2 中说了,图片中明文。

---

### flag5{P3prqF}

主网址源码中注释。发现颜色被改成白色,并设置不可选中,导致一开始并没有看到。修改后即得到 flag5。



> 同时看到 flag9 也在这里。

> 现在是在 ……….. 中找到字母一个个拼出来,在 flag9 中会看到更直观的显示。

---

### flag6{20240217}

主网页中进入 flag6,查看源码发现它自己会去算的,1e8 次循环,循环体中也没看到卡时间的部分,就让它自己算即可。甚至贴心的在 console 中有输出,65s 就出了结果。



---

### flag7{Djl9NQ}

视频第 21 秒,前往对应 github 仓库,查看 commit 记录,得到 flag7。



> 甚至 commit message 都这么直接,是故意的还是不小心?

---

### flag8{OaOjIK}

主网页中进入 flag8 & flagB,玩到 10000 分领了 flag8。正确姿势见 flagB。

---

### flag9{KHTALK}

flag5 中说了,看这 `/ \ _` 总感觉很眼熟,但一时想不出来。Brainfuck、二进制对应等等都想过,怎么映射都对不上。后来终于想起来了,请看:

- 知乎



- Bilibili



调整网页宽度,flag9 就出来了。同时 flag5 更清楚了。



---

### flag10{6BxMkW}

flag4_flag10.png 那张图片,考虑隐写,先把老套路的方法都上一遍再说,结果 Stegsolve 一下就出来了。



---

### flag11{HPQfVF}

主网页中进入 flag11,发现是一张图片被分成很多块后显示在特定位置,源码中提示在 0 ~ 100 范围内调整 var1 和 var2 两个值。



下载 index.html 和 flag11.png 到本地,编写脚本:

```python
from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('file:///xxx/index.html')

for var1 in range(0, 101):
    for var2 in range(0, 101):
      script = f"document.documentElement.style.setProperty('--var1', '{var1}');"
      script += f"document.documentElement.style.setProperty('--var2', '{var2}');"

      driver.execute_script(script)

      print(var1, var2)

      time.sleep(0.01)

driver.quit()
```

快速遍历 0~100 的范围,每 0.01 秒改变一次图像。不断缩小遍历范围,最后得到 flag11。



> 一开始还以为是小方块组成对应文字,后来才意识到是重排顺序组成一张图片,被自己蠢的笑了。。。

---

### flag12{HOXI}

主网页中进入 flag12,发现是将你的输入跑一段汇编,结果非零则输出正确 flag。无奈汇编看不懂,只能跑暴力。

启用本地替代,修改程序,开始暴力:



非常漫长,如果不自信到底有没有在跑可以时不时设个断点看一下。记得等了个 5~10 分钟才出了结果。



此时 secret 几乎是上界。。。之后重新倒着暴力了一遍,不用一分钟就出来了。

---

### flagA

没出来,主网页登录后 login 响应标头中有 flagA,看上去像 base64 加密的,但解密出来是乱码。在网页的各个地方找解密接口找不着。

---

### flagB

看到 flagB 价格的数字这么“精准”,能想到可能和溢出相关,v50 的提示的确就是溢出。

> 对于不大了解的,暂时可以简单理解为,当数字达到正的最大值时,再加 1,则会变成负的最小值,反之同理。相当于一个循环的结构。

购买个数随便输了个很大的数字,提示“购买后金币大于原金币”,被拦截了。因此需要精心构造一个数字。

首先要确定存储金币的数据类型的范围。用便宜的 100 一个的东西开始试(精确),逐步加大购买个数(后面加 0),找到提示“钱不够”和“购买后金币大于原金币”的分界线,就能确定最高位,然后继续精确下一位,等等。前几位试了知道是 9.22e16 左右,乘上单价也就是说(负数的)数据范围在 -9.22e18 左右,熟悉的就知道应该是 64 位有符号整数了( $-2^{63} \sim 2^{63}$ )。

然后就可以构造购买个数了。记 $N=2^{63}$,则购买价格为 $Q$ 的东西时,数量为 $\lceil\frac{2N}{Q}\rceil$ 。



---

### flagC

默认图片中,显示种类正确的四种就是全部所需的图片。然后就像这样试位置就行了。



最后的图片就长这样:



> 一开始还以为很烦,不知道它跑的权重的 numClass 有多少,以为每个分类一个个都要试过。被唬住了,懒得去试。

> 这高级题所需的技术不就和最开始拼接视频的二维码一样吗……高级题到手的前十首杀奖励飞了,这 400 吾爱币有点红眼啊 (bushi)

---

## 后注

一些尝试过的点:

- 前文已经说过的
- 查看视频的声谱图
- 观察发现各个 flag 的地址均形如`https://2024challenge.52pojie.cn/flag?/index.html`,一开始卡在 flag2 时,尝试访问 `flag2/index.html`
- flagB 针对 info 做逆向
- ~~忘了,碰壁的东西就是忘得快~~

风子09 发表于 2024-2-25 00:08

{:1_918:}学习了,超出知识范围!

chuqiao68 发表于 2024-2-29 20:26

超刚题,来学习了。

csw曾哥 发表于 2024-3-1 09:38

哈哈,FlagA可以看我写的文章:https://xz.aliyun.com/t/13728

cnick 发表于 2024-3-15 15:49

学不来啊这个

yyrocku2 发表于 2024-3-21 11:10

学习了学习了啊感谢感谢大佬

zs010816 发表于 2024-4-4 19:25

刚开始接触这个圈子,学习中,冲冲冲!

qq309160 发表于 2024-4-4 20:40

可以试试

hebccc 发表于 2024-4-6 07:59

论坛大神多,各方面都擅长
页: [1]
查看完整版本: 吾爱 2024 春节解题领红包 Web 题 WriteUp