Snert-2018春季淘汰赛Misc,Crypto WriteUp

Author Avatar
kabeor 3月 18, 2018

Misc100 black

给了张图,估计隐写
mark

掏出神器StegSolve
mark
点下面的箭头到Random color就看见了
mark

Misc200 我在哪

mark

12343254634532412342423423412435645756879076845643521343254365756f2423423412435645756879076845643521343254365756242342341243564575687907684564352134325436575624234234124356457568790768456435213432543657562423423412435645756879076845643521343254365756242342341243564575687907684564352134325436575624234234124356457568790768456435213432543657562423423412435645756879076845643521343254365756l24234234124356457568790768456435213432543657562423423412435645756879076845643521343254365756242342341243564575687907684564352134325436575624234234124356457568790768456435213432543657562423423412435645756879076845643521343254365756a024234234124356457568790768456435213432543657561343254365756242134325436575624213432543657562421343254365756242g2423423412435645756879076845643521343254365756242342341243564575687907684564352134325436575624234234124356457568790768456435213432543657562423423412435645756879076845643521343254365756{352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242f3521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242f3521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242f352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242f3521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242f35213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242f35213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242u3521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242c3521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242k3521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242756242352134325436575624235213756242352134325436575624235213756242352134325436575624235213756242352134325436575624235213756242352134325436575624235213_1343254365756242135213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242t352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242h352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242i35213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242s35213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242}3521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624235213432543657562423521343254365756242352134325436575624213432543657562421343254365756242

给了一大堆,但是我从里面看见了f等字母,不想费眼睛,新建word,把数字全部替换为空即可
mark

官方wp
用的是脚本

str="xxxxxxxxxx"

for i in str:
if i.isdigit():
pass
else:
print i

Misc300 某人的猫

mark

给了个压缩包,winhex看了,并不是伪加密,于是掏出神器Ziperello,设定1到8位纯数字爆破,五秒真男人后就成功了

mark

打开txt看看

mark
非常的长
没有base64的特点,想到了16进制转字符串,试试

mark
乱码了,不过看见了PNG,那肯定是转图片咯
使用16进制转图片的软件
mark
得到一张照片
mark
扫一扫
得到
mark
没什么头绪,放进kali中binwalk一下,中奖了
mark
五张,第一张就是那个二维码,其他的用dd命令分离
dd if=1.jpg of=2.jpg skip=12280 bs=1
这里if是指定输入文件,of是指定输出文件,skip是指定从输入文件开头跳过12280个块后再开始复制,bs设置每次读写块的大小为1字节.

mark
最后的flag

官方wp

千禧年:2000年
md5:2adf764239cce9d9052b0670bbbbb455
纯考写脚本
思路就是md5碰撞去匹配生日,但是考点在如何从12*31个md5中去找到那个被修改了一位之前的
md5
py中有现成的库difflib 去比较两个字符串的相似程度,所以找出其中相似值最大的就好了

import hashlib
import difflib
days=[]
# 生成生日日期
for i in range(1,13):
    if i <=9:
        mounth='0'+str(i)
    else:
        mounth=str(i)
    for j in range(1,32):
        if j <=9:
            day='0'+str(j)
        else:
            day=str(j)
        birth='1997'+mounth+day
        days.append(birth)

code='2adf764239cce9d9052b0670bbbbb455'

result = {}
ratios = []

#碰撞md5,并计算相似值,以字典的形式储存最后读取出相似值最高的值

for day in days:
    md5 = hashlib.md5(day.encode('utf‐8')).hexdigest()
    seq = difflib.SequenceMatcher(None,md5,code)
    ratio = seq.ratio()
    ratios.append(ratio)
    result[ratio]=day
    print ratio,day

tmax = max(ratios)
print tmax
print result[tmax]

Misc200 flag去哪了

又给了一张图(这张图不会显示)
mark
截图为
mark
这回缺了点什么
放进linux不识别,应该是修改了16进制的像素位,所以用winhex看看
mark

对于png文件,其第二行第六七列是高度位,改这一位即可,修改时的数值应该从十进制转为16进制
mark
保存后查看,也只能截图了
mark
那个o是小写。。。

Crypto100 TAT

mark
对于这道题我只能说,别百度了,Google吧,颜文字密码,aaencode解密即可
mark

Crypto200 仿射密码

mark

加法密码和乘法密码结合就构成仿射密码,仿射密码的加密和解密算法是:C= Ek(m)=(k1m+k2) mod n
M= Dk(c)=k3(c- k2) mod n(其中(k3 ×k1)mod26 = 1)
仿射密码具有可逆性的条件是gcd(k1, n)=1。当k1=1时,仿射密码变为加法密码,当k2=0时,仿射密码变为乘法密码。
仿射密码中的密钥空间的大小为nφ(n),当n为26字母,φ(n)=12,因此仿射密码的密钥空间为12×26 = 312。

让解密,c++写个程序

mark

#include "stdafx.h"
#include<iostream>
#include<string.h>
#include <cstdio>
using namespace std;

char s[100];
int num[100];

int main()
{
while (std::cin >> s)
{
int len = (int)strlen(s);
for (int i = 0; i < len; i++)
{
num[i] = s[i] - 'a' + 26;
while ((num[i] - 7) % 11)
{
num[i] += 26;
}
s[i] = (num[i] - 7) / 11 + 'a';
printf("%c", s[i]);
}
putchar('\n');
}

return 0;
}

mark

Crypto200 animals?

mark
给了一长串,最后有===,是个base64,于是只能一遍一遍去解了,
最后留下一行
mark

倒过来

what kind of animal cry wangwang

会汪汪的只有dog

所以 flag{dog}

官方wp
n次base64

import base64
str='xxx'
for i in range(0,50):
    try:
        a=base64.b64decode(str)
    except:
        break
 print a

Crypto300 真正的粉丝0_0

mark

并不知道这是什么梗,还好I have a girlfriend

所以不知道为什么会有 89 64
也不知道为什么最后 flag{tooyoungtoosimple}

官方wp

格朗普雷密码,特点是用一个单词或者句子作为棋盘首行,包含26个英文字母,然后用坐标
表示字母
提示给了为什么没有9和句子中字母的个数提示,一共64个字母,是8*8 的棋盘,所以没有9
从上到下把字母放入棋盘

  1 2 3 4 5 6 7 8
1 t h e q u i c k 
2 b r o w n f o x
3 j u m p s o v e
4 r t h e l a z y
5 d o g a n d a n
6 a i v e g u y w
7 a n t t o g e t
8 a f l a g l o l

对应 11 27 87 67 52 66 55 85 73 87 27 35 16 33 34 45 77

完结

From https://kabeor.github.io/Snert-2018春季淘汰赛Misc,Crypto WriteUp/ bye

This blog is under a CC BY-NC-SA 4.0 Unported License
本文链接:https://kabeor.github.io/Snert-2018春季淘汰赛Misc,Crypto WriteUp/