zhengjim 发表于 2024-2-26 09:59

52破解2024年web春节解题

记录一下全部web解题思路

领完任务给了b站视频地址
您的UID: 111111111仔细查看视频和视频下方的介绍链接获得信息:https://www.bilibili.com/video/BV1ap421R7VS/
先看视频吧。flag3
反复播0-1s, 仔细看就屏幕中间就可以看到flag3
flag3{GRsgk2}flag1
然后0.5倍播2-4s,仔细看波动的背景可以看到flag1
flag1{52pj2024}

然后出现被剪过的二维码,拼起来就可以了

扫描后:https://2024challenge.52pojie.cnflag7

然后视频出现一个github地址:https://github.com/ganlvtech/52pojie-2024-challenge

flag7{Djl9NQ}
另一个视频为b站的原视频

下面看web站吧
flag2

传uid登录用burp抓包,有三个包

/auth/login接口返回包set-cookie 有uid和flagA。
/ 里有flag2

flag2{xHOpRP}


flagA

/auth/uid接口返回uid

尝试解密flagA无果,多次尝试,发现把flagA的值替换到uid里发包就可以了(登录返回两个set-cookie推测,其实就是各种尝试…)
flag4 & flag10

看到index.html 返回内容有flag4_flag10.png



flag4{YvJZNS}

下载来丢Stegsolve翻一下

flag10{6BxMkW}flag5 & flag9

index.html 源码还有一块flag5 flag9

flag5 flag9的话源码35行复制出来

看到pre里的style颜色white,调整成black看看


每行斜着看,flag5就出来了
flag5{P3prqF}

把flag5{P3prqF}及.删除看看。发现white-space: pre-wrap ,自动换行,拖拉下窗口宽度(还好屏幕够大且有双屏hhh),发现flag
flag6

然后按顺序解题,flag6 看源码

cmd5直接解

flag6{20240217}flag8 & flagB

flag8没啥好说的,玩10000金币直接买就完事


点v我50有提示溢出
那就先输入一个大数,一直加0试试

10000000000 提示 购买商品之后钱怎么还变多了?不知道出什么 bug 了,暂时先拦一下 ^_^

100000000000又开始提示 钱不够

于是想到找10000000000 - 100000000000 是哪个数开始改变的。

我直接在burp上从大到小开始修改位数,比如 18000000000 提示 bug,19000000000提示钱不够。 于是就是18xxxxxxx。 一直尝试到最后三位直接遍历了。

输入数字为18464037713

flag11

改个编码看源代码提示

大概就是遍历—var1、—var2,利用chatgpt写个js// 获取根元素
const root = document.documentElement;
let var1Value = 0;
let var2Value = 0;

// 添加键盘按下事件监听器
document.addEventListener('keydown', function(event) {
    // 检查按下的键是否是空格键
    if (event.code === 'Space') {
      // 修改--var2的值
      root.style.setProperty('--var2', var2Value.toString());
      console.log(`--var1的值已修改为:${var1Value}`);
      console.log(`--var2的值已修改为:${var2Value}`);
      var2Value++;

      // 如果--var2的值达到100,则重置为0并递增--var1的值
      if (var2Value > 100) {
            var2Value = 0;
            var1Value++;
      }

      // 如果--var1的值也达到100,则重置为0
      if (var1Value > 100) {
            var1Value = 0;
      }

      // 修改--var1的值
      root.style.setProperty('--var1', var1Value.toString());
    }
});

按住空格开始遍历,—var1 71、—var2 20 出现flag


flag11{HPQfVF}flag12

看源代码

使用了 WebAssembly ,需要输入个值返回num,然后做运算获取flag。

把flag12.wasm下载来反编译。使用wabt

get_flag12 输入a,满足a * 1103515245 ==1,返回1213159497。
结合上面js, 直接算就行了。let num = 1213159497;
let str = '';
while (num > 0) {
    str = String.fromCodePoint(num & 0xff) + str;
    num >>= 8;
}
alert(`flag12{${str}}`);

flag12{HOXI}
flagC

识别结果:物体太多,图片又有种类错误、位置错误。
抓包,/flagC/verify接口,首先调整classes传入的参数个数

首先调整classes传入的参数个数,发现传入4个返回正确,但位置和种类需要调整

然后试种类,1 2 3 6提示种类正确

然后再改改位置,flagC出现


zhengjim 发表于 2024-3-18 11:03

wozengweiming 发表于 2024-3-18 10:54
flag11 是怎么问chatgpt 让他写js的...

先说他是高级JS工程师,然后把代码丢进去,说我需要在控制台写一个js遍历修改--var1,--var1的值,应该如何操作和编写代码
也是一步步让他调出来的。最后自己在改一下,:sleepy:
https://attach.52pojie.cn//forum/202403/18/110256e5j71b51blbxgj25.png?l

wozengweiming 发表于 2024-2-26 10:05

写得很详细,学习了。

wsw黑马 发表于 2024-2-26 10:15

写的思路不错,学习了

菜鸟--不二 发表于 2024-2-26 10:15

看不懂,但是觉得很厉害

gracenshan 发表于 2024-2-26 10:38

看起来很厉害的样子啊

yjj0xxml 发表于 2024-2-26 10:55

每年春节都有这种活动嘛?

holkep 发表于 2024-2-26 11:17

很详细,给学信安的我有个更多的思路去学习

xiehonglian 发表于 2024-2-26 12:09

写的思路不错,学习了

liert 发表于 2024-2-26 17:17

我就差一个flag7{}{:301_979:}

liujkk 发表于 2024-2-26 17:23

思路不错
页: [1] 2 3
查看完整版本: 52破解2024年web春节解题