52PoJie论坛2024春节红包-Web解题思路

52PoJie论坛2024春节红包-Web解题思路

AabyssZG
2024-02-19 / 1 评论 / 900 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2024年02月20日,已超过208天没有更新,若内容或图片失效,请留言反馈。

0# 概述

注:本文原创首发自T00ls论坛,文章链接:https://www.t00ls.com/thread-71282-1-1.html

最近刷了刷公众号,偶然看到吾爱破解论坛官方公众号发布了这么一篇文章

春节红包-title.png

咦,有春节红包领耶,就点进去看了看,原来是52pojie论坛举办的解题领红包活动

官方论坛帖子链接:https://www.52pojie.cn/thread-1889163-1-1.html

春节红包-详情.png

总共有静态Flag十二个(Flag1-Flag12),以及动态Flag三个(FlagA、FlagB、FlagC)

由于我最近眼睛感染了急性结膜炎,在医院和亲戚家里跑来跑去,所以也就17号做了一下午,共做出10个静态Flag和2个动态Flag

今天眼睛好一点了,就来写一下我自己是如何解其中Web题的吧

1# 解题过程

首先,去吾爱破解论坛接任务:https://www.52pojie.cn/home.php?mod=task&do=view&id=34

接完任务会给以下信息:

您的UID: 14xxx58
仔细查看视频和视频下方的介绍链接获得信息:https://www.bilibili.com/video/BV1ap421R7VS/

获得一个Bilibili视频:

1.1 Flag3

首先视频开头有一个噪点的页面,仔细用肉眼就可以看到一个Flag的图像
Flag3就隐藏在噪点之中,我通过剪辑视频放慢速度,可以看到如下画面:

春节红包-Flag3.gif

flag3{GRsgk2}

1.2 Flag1

在视频接下来的淡入淡出效果,感觉有蹊跷,发现背景存在Flag,放慢看:

春节红包-Flag1.gif

flag1{52pj2024}

1.3 拿到Web题目地址

接着,视频的“吾爱破解”四个字,分别变成了二维码的四分之一,如下

春节红包-题目地址-1.png
春节红包-题目地址-2.png
春节红包-题目地址-3.png
春节红包-题目地址-4.png

将每一部分截图出来后,进行抠图拼接,最后是这样子的

春节红包-题目地址.png

二维码解码后,得到Web题目地址:https://2024challenge.52pojie.cn

1.4 Flag7

春节红包-Flag7.png

视频最后,讲了会将题目源码放到Github开源仓库:https://github.com/ganlvtech/52pojie-2024-challenge

随后打开仓库看了一眼,发现了更新了四次,觉得有蹊跷,点开记录一看

春节红包-Flag7-1.png

春节红包-Flag7-2.png

flag7{Djl9NQ}

1.5 Flag2和FlagA

上面拿到了一个Web题目地址,打开看看:https://2024challenge.52pojie.cn

春节红包-题目登录.png

发现需要输入自己的UID进行登录,索性输入任务给的UID登录并用Burp Suite抓包

先是发现了动态FlagA,但看样子是加密的

春节红包-发现FlagA.png

然后发现跳转返回包的头部存在Flag2

春节红包-Flag2.png

flag2{xHOpRP}

但是动态FlagA我跑了半天都解密不出来,真的是醉了,继续观察数据包,发现了这一个接口

春节红包-发现数据包.png

发现Cookie字段存在uid的值,而且接口返回的正是真实UID,我就想可能这是一个解密的数据包。。。将uid的值替换为FlagA的值,发包,成功获得FlagA的解密值

春节红包-FlagA.png

flagA{aecxxx52}

注:FlagA真的有点脑洞,我跑了一下午的 Ciphey 愣是没有解密出来,人都快傻了,最后还是重新观察数据包才想到这种可能性的

2024吾爱破解红包.png

但最后还是抢到红包啦,开心哈哈~

1.6 Flag4和Flag10

按照我多年打CTF的经验,果断查看网页源代码

春节红包-发现4和10.png

果然发现一张图片,遂访问图片,拿到Flag4:https://2024challenge.52pojie.cn/flag4_flag10.png

春节红包-Flag4.png

flag4{YvJZNS}

但是Flag10呢?因为是图片,马上想到了图片隐写,按我多年打CTF的经验,直接上图片隐写工具 StegSolve

春节红包-Flag10.png

flag10{6BxMkW}

1.7 Flag5和Flag9

再仔细查看网页源代码,发现这一处地方:

春节红包-发现5和9.png

于是复制下来,发现里面暗藏字符串,直接通过替换将多余字符串删掉:

春节红包-源文档.png

春节红包-Flag5.png

flag5{P3prqF}

那Flag9又在哪里呢??看到HTML代码里面有很多 _/ 还有 \,我感觉是ASCII字符串拼成的图形,遂整理代码,删掉多余的内容,HTML代码如下:

<html><pre style="position: absolute; z-index: -1; left: 0; top: 0; right: 0; margin: 0; color: red; user-select: none; pointer-events: none; white-space: pre-wrap; word-break: break-all; line-height: 1;">
____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________/\\\\\__/\\\\\\_____________________________________/\\\\\\\\\__________________/\\\________/\\\__/\\\________/\\\__/\\\\\\\\\\\\\\\_____/\\\\\\\\\_____/\\\______________/\\\________/\\\___________________/\\\///__\////\\\___________________________________/\\\///////\\\________/\\\\\_\/\\\_____/\\\//__\/\\\_______\/\\\_\///////\\\/////____/\\\\\\\\\\\\\__\/\\\_____________\/\\\_____/\\\//___/\\\\\__________/\\\_________\/\\\_____________________/\\\\\\\\____/\\\______\//\\\_____/\\\///__\/\\\__/\\\//_____\/\\\_______\/\\\_______\/\\\________/\\\/////////\\\_\/\\\_____________\/\\\__/\\\//_____\////\\\______/\\\\\\\\\______\/\\\_____/\\\\\\\\\_____/\\\////\\\__\//\\\_____/\\\\\____\//\\\____\/\\\\\\//\\\_____\/\\\\\\\\\\\\\\\_______\/\\\_______\/\\\_______\/\\\_\/\\\_____________\/\\\\\\//\\\________/\\\______\////\\\//_______\/\\\____\////////\\\___\//\\\\\\\\\___\///\\\\\\\\/\\\__/\\\\\\_____\/\\\//_\//\\\____\/\\\/////////\\\_______\/\\\_______\/\\\\\\\\\\\\\\\_\/\\\_____________\/\\\//_\//\\\______\//\\\\\\_____\/\\\_________\/\\\______/\\\\\\\\\\___\///////\\\_____\////////\/\\\_\/////\\\____\/\\\____\//\\\___\/\\\_______\/\\\_______\/\\\_______\/\\\/////////\\\_\/\\\_____________\/\\\____\//\\\______/\\\///______\/\\\_________\/\\\_____/\\\/////\\\___/\\_____\\\___/\\________/\\\______/\\\_____\/\\\_____\//\\\__\/\\\_______\/\\\_______\/\\\_______\/\\\_______\/\\\_\/\\\_____________\/\\\_____\//\\\____\//\\\________\/\\\_______/\\\\\\\\\_\//\\\\\\\\/\\_\//\\\\\\\\___\//\\\\\\\\\\\/______\///\\\\\_\/\\\______\//\\\_\/\\\_______\/\\\_______\/\\\_______\/\\\_______\/\\\_\/\\\\\\\\\\\\\\\_\/\\\______\//\\\__/\\\\\_________\///_______\/////////___\////////\//___\////////_____\///////////__________\/////__\///________\///__\///________\///________\///________\///________\///__\///////////////__\///________\///__\/////____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________</pre>
</html>

调整了一下宽度,没几下Flag9就显形了

春节红包-Flag9.png

flag9{KHTALK}

1.8 Flag6

再回头看Web题目网站,可以找到Flag6的子页面:https://2024challenge.52pojie.cn/flag6/index.html

主体代码是以下JavaScript,主要是用作爆破指定MD5的明文:

    document.querySelector('button').addEventListener('click', () => {
        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.png

flag6{20240217}

1.9 Flag8和FlagB

同样可以找到Flag6的子页面:https://2024challenge.52pojie.cn/flagB/index.html

是个2048的小游戏,随便玩玩赚点金币,可以购买道具:

春节红包-发现8和B.png

随便玩玩就玩到了10000了(开始游戏后随便玩玩,妥善用双倍道具),直接买了个Flag8

春节红包-Flag8.png

flag8{OaOjIK}

但FlagB这个数字肯定玩不到怎么办?直接买,提示金币不够
于是购买了v我50这个道具,使用后,提示我这么一段话

春节红包-v我50.png

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

溢出,让人想到的就是下标越界之类的,这里哪里能传参数值呢?拿Burp Suite看了半天,好像也只有购买数量里面可以直接控制数值

先将金币先玩到1k+,然后尝试进行Fuzz,最终购买那里输入 424672867399 让数字溢出(我原本的想法是控制数据包内的JSON格式内容让它溢出,但我思路错了一直没成功,这个数字是我和 @Tokeii 师傅交流来的)

春节红包-FlagB.png

点击购买,会消耗掉一些金币,并成功购买到FlagB,点击使用拿到FlagB

FlagB{0xxxx8}

春节红包-中级解决.png

2# 总结

剩下还有Flag11和Flag12,由于眼睛结膜炎还没好,不能长时间看电子设备,就没有再做了,有点可惜

总体来说,题目做下来都还是不错的,大家感兴趣可以去试试~同时非常感谢吾爱破解论坛提供的平台,由衷感谢论坛 Ganlv 出题老师的出题

也希望各位师傅能从本文有所收获,互相交流,共同进步!

7

评论 (1)

取消
  1. 头像
    聿聿
    Windows 10 · Google Chrome

    解不出来了,bing随手搜了一个flag10,你猜怎么着,找到宝了表情表情

    回复