CTF 2024 Presented by Cyandev Write Up

作者:dabaisuv,原文链接:https://dabaisuv.github.io/2024/01/05/CTF-2024-Write-Up

CTF 2024 Presented by Cyandev https://ctf.cyandev.app 的通关笔记

1.Check in

看情况是需要我输入一个flag

随意输入字母a并单击提交,出现了如下提示。

这是javascriptalert提示,这里我们可以通过hook alert并栈回溯找到调用源,但是我们先试试直接寻找submit的回调函数。如图,找到click回调。

,由此再跳转到源码处,断点后发现此处函数为空。

进一步跟下去,各种跳转,应该是一种反跟踪措施。正着走行不通就倒着hookalert试试,
在控制台执行以下命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 保存原始的 window.alert 函数
var originalAlert = window.alert;

// 创建新的函数来替代 window.alert
window.alert = function(message) {
// 添加你的逻辑
console.log('Alert Hooked!');
// 触发中断
debugger;
// 调用原始的 window.alert 函数
originalAlert(message);
};

// 测试钩取后的效果
window.alert('Hello, World!');

上面的命令会hook住alert函数,并在被调用时触发调试器中断。
回到提交flag处再次点击submit,此时alert被调用并触发中断。

栈回溯找到if判断,将条件直接改为改为true并再次运行。


成功!

直接成功过了,其实还有一种方法可以获取flag1的真实值,就是直接一路跟到它的checkFlag1函数并修改暴力破解的。

Challenge 2也可直接修改if的判断值绕过。

作者还给了一个通关奖励,需要flag1的真实值。

可以利用我上面的暴力破解法获取真实值,打码了。

最终是一个支付宝口令红包,不过好像被领完了。