吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2253|回复: 9
收起左侧

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

[复制链接]
Sayon 发表于 2024-2-25 00:02

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

Web(×)   Misc(√)

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


正文

flag1{52pj2024}

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

  • 逐帧导出视频

    ffmpeg -i input_video.mp4 output/frame%d.jpg
  • Photoshop 中进行线性叠加

flag1.png


flag2{xHOpRP}

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

flag2.png

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

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


flag3{GRsgk2}

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


flag4{YvJZNS}

flag2 中说了,图片中明文。


flag5{P3prqF}

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

flag5.png

同时看到 flag9 也在这里。

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


flag6{20240217}

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

flag6.png


flag7{Djl9NQ}

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

flag7.png

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


flag8{OaOjIK}

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


flag9{KHTALK}

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

  • 知乎

flag9-1.png

  • Bilibili

flag9-2.png

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

flag9-3.png


flag10{6BxMkW}

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

flag10.png


flag11{HPQfVF}

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

flag11-1.png

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

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。

flag11-2.png

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


flag12{HOXI}

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

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

flag12-1.png

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

flag12-2.png

此时 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$

flagB.png


flagC

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

flagC-1.png

最后的图片就长这样:

flagC-2.png

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

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


后注

一些尝试过的点:

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

免费评分

参与人数 2吾爱币 +1 热心值 +2 收起 理由
Ganlv + 1 用心讨论,共获提升!
DNLINYJ + 1 + 1 用心讨论,共获提升!

查看全部评分

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

风子09 发表于 2024-2-25 00:08
学习了,超出知识范围!
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
论坛大神多,各方面都擅长
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-14 11:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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