NSS [MoeCTF 2022]ezhtml
F12查看源码
2023年8月10日更新。有师傅问如何让他自己输出flag。想了一下,上面的方法方便是方便,但是却 得得到她的人确得不到她的心 哈哈哈。方法肯定是有的。
首先分析一下源码:
// 获取元素节点 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自动输出。