[MoeCTF 2022]ezhtml
题目
查看页面源代码
有个/evil.js文件打开查看
看到了flag
NSSCTF{e15f7f51-d1a0-4d1b-a96d-c987a4fe69a0}
到这里也就可以直接结束了
// 获取元素节点
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自动输出。