Command 发表于 2024-2-25 08:37

2024解题领红包 Web题WP

# 2024解题领红包 Web题WP

第一次发帖, 没啥经验, 还请多多包涵

# 静态flag

## flag1

在视频第二秒, 粒子从中央向外扩散, 会发现有阴影, 一帧一帧看就能得到flag1{52pj2024}

## flag2

请求https://2024challenge.52pojie.cn/

```bash
curl -v https://2024challenge.52pojie.cn/
```

可以发现响应头中有flag2

````
X-Flag2: flag2{xHOpRP}
````

## flag3

在视频开头雪花屏部分, 仔细看那一段就能得到flag3 (不过挺费眼睛的)

## flag4

访问站点, 发现页面请求了flag4_flag10.png



## flag5

发现页面中的提示



将文字改为黑色, position改为relative后得到



将这段文字中的字母, 数字和{}提取后得到

```
flag5{P3prqF}
```



## flag6

观察js, 发现在比较md5

```javascript
const t0 = Date.now();
for (let i = 0; i < 1e8; i++) {
    if ((i & 0x1ffff) === 0x1ffff) {
      const progress = i / 1e8;
      const t = Date.now() - t0;
      console.log(`${(progress * 100).toFixed(2)}% ${Math.floor(t / 1000)}s ETA:${Math.floor(t / progress / 1000)}s`);
    }
    if (MD5(String(i)) === '1c450bbafad15ad87c32831fa1a616fc') {
      document.querySelector('#result').textContent = `flag6{${i}}`;
      break;
    }
}

```

查询md5, 得到



与flag6{}拼接得到flag6{20240217}

## flag7

在(https://github.com/ganlvtech/52pojie-2024-challenge/commit/6bbac038c4813fbc5d129a8d605471ea2e374786)中



## flag8

直接玩到10000金币

## flag9

没做出来

## flag10

使用StegSolve把flag4_flag10.png反色一下 (Color Inversion)



## flag11

这个图用gaps拼不好滴, 得看提示



提示里让我们给var1和var2在0-100范围内找到一个合适的值
写个脚本来找

```javascript
let El = document.documentElement
function Find(v1, v2) {
    if (v1 === 100) {
      return   
    }
    if (v2 === 100) {
      v1++
      v2 = 0
    }
      v2++
    El.style = '--var1: ' + v1 + '; --var2: ' + v2   
   
    setTimeout(Find, 100, v1, v2) // 间隔0.1s方便观察拼的情况
}
Find(0, 0)
```

得到还原好的flag11



(对应的var1, var2):

```css
--var1: 71;
--var2: 20;
```

## flag12

分析一下wasm

```wasm
i32.const 1213159497
i32.const 0
local.get $var0
i32.const 1103515245
i32.mul
i32.const 1
i32.eq
select
```

判断了$var0是不是1103515245的倒数, 如果是就返回1213159497

直接把函数get_flag12中的num替换成1213159497即可

最后得到flag12{HOXI}

# 动态flag

## flagA

在页面上登录后会将uid, flagA存到Cookie里

```bash
# 使用CURL
curl -v -d "uid=你的UID" https://2024challenge.52pojie.cn/auth/login
```

```
< Set-Cookie: uid=Zc0EAIdE+35lTUCZkVxqlGEeZrWyzHrJHAiT4M9J3abVr7Q=; path=/; SameSite=Lax
< Set-Cookie: flagA=M1It0z/FXQNBFWnjCM9J/JWOjPImaFIrm/ZYSjlUQRaBKk1KlYbOyMObzQ==; expires=Sat, 24 Feb 2024 02:30:00 GMT; path=/; SameSite=Lax
```

发现每次打开页面都会请求https://2024challenge.52pojie.cn/auth/uid从Cookie解密uid, 于是将flagA的内容替换到uid里, 再刷新页面即可得到flagA

```bash
# 使用CURL
curl -b "uid=M1It0z/FXQNBFWnjCM9J/JWOjPImaFIrm/ZYSjlUQRaBKk1KlYbOyMObzQ==" https://2024challenge.52pojie.cn/auth/uid
```



## flagB

v他50(~~建议v我50~~), 得到提示:

```
竟然真的有人v我50,真的太感动了。作为奖励呢,我就提示你一下吧,关键词是“溢出”。
```

考虑**int64**整数溢出, 一般买东西算总价都是单价 x 数量, 所以只要买8446744073709551615(也就是2 ** 64 - 1) / 999063388个flagB就OK了 (但还是会扣除大概28金币, 我也不知道为啥)

## flagC

分析一下可以发现, 在前端用yolov5n识别完物品后会在服务端对物品的种类进行比较, 只有全部正确才会返回flagC

```json
{
"boxes": [...],
"scores": [...],
"classes": // 物品的种类
}
```

```json
{
"hint": "物体太多了",
"labels": [
    "car 种类错误",
    "bus 种类正确 位置正确",
   ...
], // 长度等于classes的的长度
"colors": [...]
}
```

用python跑一下

```python
import requests
import tqdm

CLS =

Cookie = '' # 填充你的Cookie

for i in tqdm.tqdm(range(len(CLS))):
    for a in range(81):
      CLS = a
      r = requests.post('https://2024challenge.52pojie.cn/flagC/verify', {
            "boxes": ,
            "scores": ,
            "classes": CLS
            }, json=True, headers={'Cookie': Cookie}).json()
      if '错误' in r['labels']:
            pass
      else:
            break
print(CLS)
print(r)
```

最后输出

```

{'hint': 'flagC{bc99ed00} 过期时间: 2024-02-24 10:50:00', 'labels': ['train 种类
正确 位置正确', 'bus 种类正确 位置正确', 'motorcycle 种类正确 位置正确', '', '',
'', '', '', '', '', 'boat 种类正确 位置正确', '', '', ''], 'colors': ['99ff99',
'99ff99', '99ff99', '', '', '', '', '', '', '', '99ff99', '', '', '']}
```

51Crack 发表于 2024-2-25 10:17

另一贴看到flag9了
https://attach.52pojie.cn/forum/202402/25/013155v8snnj787s47ids7.png

yanghaohuid 发表于 2024-2-25 10:30

{:1_919:}有点详细{:1_921:}

iamafailor 发表于 2024-2-25 10:33

静态12个全部找出来 但是动态一个都不会

wqstudyy 发表于 2024-2-25 11:54

谢谢楼主,flagC的方法是目前看到最清楚的

月落乌伤 发表于 2024-2-25 12:08

今年的题目有趣有创意,楼主写的很详细,学习了
页: [1]
查看完整版本: 2024解题领红包 Web题WP