[BUUCTF]REVERSE——[FlareOn4]login

[FlareOn4]login

附件

步骤:

  1. 是个网页,直接打开,查看网页源码
    在这里插入图片描述
  2. 百度了几个函数
    charCodeAt(0)是返回当前字符的Unicode 编码
    String.fromCharCode返回Unicode对应的字符串
    然后顺便了解到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);});这句代码的意思就是将字符后移13位,越界了就转到26个字母的开头(超过Z循环回A),循环进行,最后得到了字符串PyvragFvqrYbtvafNerRnfl@syner-ba.pbz

后来了解到这个叫做ROT13加密,自己手动运算了几遍,发现A~~M之间的字符串加密是直接+13,N~Z的是-13

exp

a='PyvragFvqrYbtvafNerRnfl@syner-ba.pbz'
flag=''
for i in a:
    if i >='A' and i<='M':
        flag += chr(ord(i)+13)
    elif i >='a' and i<='m':
        flag += chr(ord(i)+13)
    elif i>='N' and i<="Z":
        flag+=chr(ord(i)-13)
    elif i>='n' and i<='z':
        flag+=chr(ord(i)-13)
    else:
        flag+=i
print ('flag{'+flag+'}')

在这里插入图片描述

原文地址:https://www.cnblogs.com/xlrp/p/14273644.html