题目的形式很新颖 没遇到过 就记录下来
打开后的附件是一个网站
要求我们输入flag 然后点击按钮进行判断
查看一下网页的源代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <!DOCTYPE Html /> <html> <head> <title>FLARE On 2017</title> </head> <body> <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"); } } </script> </body> </html>
|
1 2 3
| return String.fromCharCode((c <= "Z" ? 90 : 122) 判断读入的字符大小写情况 并返回ascii码值 并且为下面的判断规定了范围
|
1 2 3 4
| (c = c.charCodeAt(0) + 13) ? c : c - 26);} 将当前字符的ascii码值加13后进行一个判断 如果大于Z或者z 则-26 如果没有大于就返回加13后的值 也就是常规的凯撒密码 偏移量是13 找到下方的密文 进行凯撒变化后 得到flag
|
ClientSideLoginsAreEasy@flare-on.com