[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(arr[i].innerHTML);。

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

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

flag自动输出。

相关推荐
亮子AI16 小时前
【npm】npm install 产生软件包冲突怎么办?(详细步骤)
前端·npm·node.js
汪汪大队u17 小时前
为什么 filter-policy 仅对 ASBR 的出方向生效,且即使在该生效场景下,被过滤的路由在协议内部(如协议数据库)依然存在,没有被彻底移除?
服务器·前端·网络
无敌的牛17 小时前
C++复习(1)
java·开发语言·面试
兮兮能吃能睡17 小时前
R语言术语(2)
开发语言·r语言
慧一居士17 小时前
vue.config.js 文件功能介绍,使用说明,对应完整示例演示
前端·vue.js
颜酱17 小时前
用导游的例子来理解 Visitor 模式,实现AST 转换
前端·javascript·算法
木易 士心17 小时前
Nginx 基本使用和高级用法详解
运维·javascript·nginx
whm277717 小时前
Visual Basic 参数传送-形参与实参
开发语言·visual studio
蒙特卡洛的随机游走17 小时前
Spark的宽依赖与窄依赖
大数据·前端·spark
共享家952717 小时前
QT-常用控件(多元素控件)
开发语言·前端·qt