1.被改错的密码
从前有一个熊孩子入侵了一个网站的数据库,找到了管理员密码,手一抖在数据库中修改了一下,现在的密码变成了 cca9cc444e64c8116a30la00559c042b4,那个熊孩子其实就是我!肿么办求解!在线等,挺急的。。
PS:答案格式wctf{管理员原密码}
看位数大致猜测是md5加密后的密文(32位16进制数),之前听说过过md5加密,这种加密方式经常用在数据库中密码的加密存储,虽然md5加密存在多对一的情况,但对密码进行微小改动,md5生成的密文就会造成很大的改变,可以认为很安全。目前解密md5的方式只有彩虹表,有很多在线解密md5的网站。
解密的时候发现多了一位,仔细观察会发现中间有个‘l’字符,而16进制数从0-9和a-f,并无‘l’字符,所以无需逐个删字符去尝试,果断删除‘l’解密得到‘idf’根据答案格式输入wctf{idf},提交通过。/*注意格式中是大括号*/
2.啥?

3.ASCII码而已
\u5927\u5bb6\u597d\uff0c\u6211\u662f\u0040\u65e0\u6240\u4e0d\u80fd\u7684\u9b42\u5927\u4eba\uff01\u8bdd\u8bf4\u5fae\u535a\u7c89\u4e1d\u8fc7\u767e\u771f\u7684\u597d\u96be\u3002\u3002\u0077\u0063\u0074\u0066\u007b\u006d\u006f\u0072\u0065\u006d\u006f\u0072\u0065\u005f\u0077\u0065\u0069\u0062\u006f\u005f\u0066\u0061\u006e\u0073\u007d
虽然题目是ascii码,不过看格式像Unicode编码,而这两种编码存在关系,Unicode码扩展自ASCII字元集,知道这点就简单了,使用一个在线的Unicode转化转化工具,解码之后得到如下信息:
大家好,我是@无所不能的魂大人!话说微博粉丝过百真的好难。。v
提交wctf{moremore_weibo_fans},通过。
4.摩斯密码
嘀嗒嘀嗒嘀嗒嘀嗒 时针它不停在转动
-- --- .-. ... .
嘀嗒嘀嗒嘀嗒嘀嗒 小雨它拍打着水花
-.-. --- -.. .
PS:答案格式wctf{你所知道的}
标准的摩斯密码,对照摩斯密码表就可以,这两排的解密结果分别是MORSE CODE,最后按照格式挨个试发现wctf{morsecode}提交正确。
5.聪明的小羊
一只小羊跳过了栅栏,两只小样跳过了栅栏,一坨小羊跳过了栅栏...
tn c0afsiwal kes,hwit1r g,npt ttessfu}ua u hmqik e {m, n huiouosarwCniibecesnren.
又是一种新的加密方式,百度到有一种“栅栏加密”的方式,按照上面的做法先去空格在分组,发现余下的字符剩下71个,是个质数,无法分解,再看一下密文发现有的地方的空格有两个,貌似这里面的空个也是有意义的,下了一个小程序发现密文中共85个字符,分解后85=5*17;按照每17个一组提取首字母再组合得到 the anwser is wctf{C01umnar},if u is a big new,u can help us think more question,tks.提交wctf{C01umnar},通过。
实验5的代码如下
#include<iostream>
using namespace std;
int main()
{
string s;
s="tn c0afsiwal kes,hwit1r g,npt ttessfu}ua u hmqik e {m, n huiouosarwCniibecesnren.";
//cout<<s.length();
for(int j=0;j<17;j++)
{
for(int i=0;i<5;i++)
{
cout<<s[17*i+j];
}
}
return 0;
}