[MoeCTF 2022]ezhtml

题目

查看页面源代码

有个/evil.js文件打开查看

看到了flag

NSSCTF{e15f7f51-d1a0-4d1b-a96d-c987a4fe69a0}

到这里也就可以直接结束了

javascript 复制代码
// 获取元素节点
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(arri.innerHTML);。

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

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

flag自动输出。

相关推荐
发光小北13 小时前
Bronze100系列plc Modbus及自由口通信案例
开发语言·php
Liora_Yvonne13 小时前
为什么你写了3年前端还是搭不好一个项目
前端·架构
snow@li13 小时前
Java:后端项目会有一个类似前端node_modules的目录吗 / jar包在本地仓库 ~/.m2/repository 中按版本共存
java·开发语言·前端
weedsfly13 小时前
单例模式在前端中的正确打开方式
前端·javascript·面试
PedroQue9913 小时前
uni-router新推useUniEventChannel,彻底解决页面通信难题
前端·uni-app
IT_陈寒13 小时前
Vite冷启动快?我遇到了个奇怪的依赖问题
前端·人工智能·后端
geovindu13 小时前
java: Builder Pattern
java·开发语言·后端·设计模式·建造者模式·生成器模式
2603_9552797013 小时前
通过 brew upgrade cmake 升级到最新版本
前端
2zcode13 小时前
免费开源项目文档:基于MATLAB同态滤波的医学图像增强系统设计与实现
开发语言·matlab
REDcker14 小时前
Android 15 16KB 内存页适配详解
android·开发语言·python