<input type="text" name="flag" id="flag" value="Enter the flag" />
<input type="button" id="prompt" value="Click to check the flag" />
<script type="text/javascript">
document.getElementById("prompt").onclick = function () {
var flag = document.getElementById("flag").value;
var rotFlag = flag.replace(/[a-zA-Z]/g, function(c){return String.fromCharCode((c <= "Z" ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26);});
if ("PyvragFvqrYbtvafNerRnfl@syner-ba.pbz" == rotFlag) {
alert("Correct flag!");
} else {
alert("Incorrect flag, rot again");
}
}```
浏览器F12查看
这段JS代码实际就是对我们输入的代码进行ROT13加密,凯撒13位移位
就是将该字符替换为后13位的字符,例如A替换为N,N替换为A(超过Z循环回A),
因此我们将加密结果PyvragFvqrYbtvafNerRnfl@syner-ba.pbz再次输入,就能得到flag了