解压题目文件后,有一个html文档,点进去。
查看源码。
根据源代码可逆向写出C语言代码:
#include <stdio.h>
char data[37] = "PyvragFvqrYbtvafNerRnfl@syner-ba.pbz";
int main()
{
int i;
for (i = 0; i < 37; i++)
{
if ((data[i] >= 'a' && data[i] < 'a' + 13) || (data[i] >= 'A' && data[i] < 'A' + 13))
data[i] += 13;
else if ((data[i] >= 'a' + 13 && data[i] <= 'z') || (data[i] >= 'A' + 13 && data[i] <= 'Z'))
data[i] -= 13;
}
printf("flag{%s}", data);
return 0;
}
这里主要了解到的是ROT13加密,就是将把英文字母的字符换成它13位之后的字符,越界之后再折回来。因为英文字母有26个,所以做两次ROT加密后会还原回来。(本题分了大小写,及超过Z/z循环为A/a)
明文为‘PyvragFvqrYbtvafNerRnfl@syner-ba.pbz’,也可以通过网站解密ROT13解码计算器 - 计算专家 (jisuan.mobi)
得到flag为:flag{ClientSideLoginsAreEasy@flare-on.com}