侧边栏壁纸
博主头像
Fup1p1 's Blog 博主等级

梦想是财富自由~

  • 累计撰写 38 篇文章
  • 累计创建 24 个标签
  • 累计收到 9 条评论

目 录CONTENT

文章目录

【Reverse】[FlareOn4]login(JavaScript基础)

Fup1p1
2022-04-15 / 0 评论 / 0 点赞 / 395 阅读 / 0 字 / 正在检测是否收录...

知识点:会看基础JavaScript代码(反正我不会o(╥﹏╥)o)

空间裂隙:QQ截图20220415134356---->题目传送:题目链接
解压后是个html文件,点开,没有flag(我在想peach)
只有下图,没什么用。
QQ截图20220415134035-1650004920876
按F12检查网页源代码
QQ截图20220415134116
script 开始就是网页脚本了。

 var flag = document.getElementById("flag").value;

var 定义flag这个变量,document.getElementById().value将文本框中输入的值赋给flag。该函数的用法

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);});

我们一步一步分析(百度每一个函数,不愧是我O(∩_∩)O)
先看replace函数replace函数用法:string.replace(searchvalue,newvalue)
故此处searchvalue值为**/[a-zA-Z]/g**
what is —>/[a-zA-Z]/g正则表达式
原来是指大小写字母哦。后面的/g 指全局替换(g–>global),否则就只会替换查找到的第一处。
继续分析。
newvalue 我靠( ‵o′)凸 蒟然是个自定义函数。
返回的是

return String.fromCharCode((c <= "Z" ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26);

百度百度函数(看函数名其实也能盲猜出来)
fromCharCode函数
Unicode转成char(其实就是ASCII–>字符啦)
charCodeAt函数
char->unicode
噢,再加上三目运算符,我看懂咯!这就是个凯撒移位密码!
即将字母后移13位,越界了就回到字母序的开头
写一个python脚本

rotflag="PyvragFvqrYbtvafNerRnfl@syner-ba.pbz"
flag="flag{"
for i in rotflag:
    if i.islower():
        if (ord(i)+13<=122):
            flag+=chr(ord(i)+13)
        else:
            flag+=chr(ord(i)-13)
    elif i.isupper():
        if (ord(i)+13<=90):
            flag+=chr(ord(i)+13)
        else:
            flag+=chr(ord(i)-13)
    else: flag+=i
print(flag+'}')

QQ截图20220415143431
挺水的一题,主要没接触过JavaScript,有空还是学一下吧,想玩玩前端(嘿嘿嘿)。

0

评论区