先看题目提示是“凯撒和某某加密”,首先确定一下有凯撒加密(ps:你这不是说废话麼),然后还有一种加密方式是未知的。

看下密文:aZZg/x\ZbavpZiEZp+n)o+ 密文中有很多的符号/\+)+根据这些可以确定,首先另外一种加密方式不是MD5和base64,原因就是:字母过多,而没有数字,并且通过移位以后符号也不能全部变成字母或者数字。

到这里觉得要不先解决一下凯撒加密,看看结果字符串是一个什么样的格式吧。这么多的符号,应该不是按照字母序来移动字母了,并且里面也没有代表flag{}格式的字符,可能是按照ascii码表来移动的,并且字母和符号都进行移动。那应该移动多少位呢?既然是ascii码表移动的,那就先把字符转化成ascii码吧

西普CTF-凯撒和某某加密-以夕阳落款

可以看出,其中ascii最大的是120,对应的字符是X,ascii最大是126,那如果向ascii增加的方向移动的话,移动的位数应该是小于6的;其中最小的是41,如果向ascii减小的方向去移动的话,移动位数应该小于9

分析道这里我选择先碰碰运气,向ascii增加的方向移动,因为我看到了"X"移动5位会变成"}"

然后编写小程序,源代码如下:

#include<stdio.h>
#include<string.h>
int main()
{
	char a[1000];
	while(scanf("%s",a)!=EOF){
		int i;
		for(i=0;i<strlen(a);i++)
		{
			a[i]=a[i]+5;
		}
		printf("%s",a);
	}
	return 0;
 }

运行结果:

西普CTF-凯撒和某某加密-以夕阳落款

果真,你看,flag{}这个标志性的字符在里面都有了,但是位置不对,那另外一个加密方式应该是栅栏密码

判断了一下这个栅栏密文一共22位,那么它可能是11栏的也可能是2栏的

11栏解密:f_4ag{_Just_l}_fun_0.0

2栏解密:fu___nlJ4_}ua0_sg.ft{0  好像都不对吧。(ps:这里是个坑点)

这个加密是栅栏加密方式改编的,它分成了3组。解密:

f__
l4}
a_
gf
{u
_n
J_
u0
s.
t0
前两行三个字符,后面是两个字符。

思考:在做题的时候要发散思维,不能总是停留在已有的加密方式,有的时候不如碰碰规律,大胆的猜想一下

Flag:

温馨提示: 此处内容需要评论本文后刷新才能查看,支付2元即可直接查看所有Flag。

小广告:关于获取西普实验吧所有Writeup请点击这里查看索引

查看所有Flag需要付费,需要获取所有Flag的童鞋请访问这里成为付费用户,可以自助把自己的注册邮箱加入网站白名单,即可免回复看到本站所有Flag

Flag大全地址:所有Flag

PS:本站不是实验吧的官方站点,纯粹是个人博客,收取Flag费用仅是维持服务器费用,做站不易,且行窃珍惜,如果喜欢我的博客,愿意捐赠的,可以扫描下面的二维码

微信二维码:
支付宝二维码: