NSS [MoeCTF 2022]ezhtml

NSS [MoeCTF 2022]ezhtml

F12查看源码

image-20230703165847457
2023年8月10日更新。有师傅问如何让他自己输出flag。想了一下,上面的方法方便是方便,但是却 得得到她的人确得不到她的心 哈哈哈。方法肯定是有的。

image-20230810141216170

首先分析一下源码:

// 获取元素节点
var sx = document.querySelector('#sx');  // 获取 id 为 'sx' 的元素节点
var yw = document.querySelector('#yw');  // 获取 id 为 'yw' 的元素节点
var wy = document.querySelector('#wy');  // 获取 id 为 'wy' 的元素节点
var zh = document.querySelector('#zh');  // 获取 id 为 'zh' 的元素节点
var zf = document.querySelector('#zf');  // 获取 id 为 'zf' 的元素节点

// 将获取到的元素节点放入数组
var arr = [sx, yw, wy, zh];

// 初始化标志变量为 false
var flag = false;

// 检查函数
function check() {
    if (flag == true) {
        clearInterval(timer);  // 如果标志变量为 true,则清除定时器
    }
    var sum = 0;  // 初始化求和变量为 0
    for (var i = 0; i < arr.length; i++) {
        sum += eval(arr[i].innerHTML);  // 将各元素节点的内容解析为数字,并累加到求和变量上
    }
    // 如果求和等于 'zf' 元素节点的内容解析为数字,并且求和大于 600,则显示提示框
    if (sum == eval(zf.innerHTML) && sum > 600) {
        alert('NSSCTF{71fdb95c-3cce-4f62-9aef-9c0b95550cfa}');
        flag = true;  // 设置标志变量为 true,以便停止后续定时器执行
    }
}

// 每隔 1000 毫秒(1 秒)执行一次检查函数
var timer = setInterval(check, 1000);

关键代码是if (sum == eval(zf.innerHTML) && sum > 600),在此之前,sum的值是所有单科成绩的相加sum += eval(arr[i].innerHTML);

所以我们修改成绩时,单科成绩和总成绩要一起修改。

F12控制台,综合这个单科给他加600分提示总分也加上600分。

image-20230810141555083

flag自动输出。

image-20230810141627487

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jay 17

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值