您当前的位置: 首页 > 

九枕

暂无认证

  • 1浏览

    0关注

    42博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

buuctf学习记录-crypto(001-010)

九枕 发布时间:2022-07-27 21:00:05 ,浏览量:1

目录
    • 001 看我回旋踢
    • 002 变异凯撒
    • 003 Url编码
    • 004 传感器
    • 005 robomunication
    • 006 MD5
    • 007 Quoted-printable
    • 008 丢失的MD5
    • 009 传统知识+古典密码
    • 010 password

做题的顺序是从最旧开始的,这样比较有规律,做完看着也舒服。 上周有事忙碌,web题的下一组没肝完,先更一篇crypto的简单题~

001 看我回旋踢

解答:常规凯撒加密,偏移13。 工具是大家常用的:CTFCrakTools pro 在这里插入图片描述

002 变异凯撒

题目:afZ_r9VYfScOeO_UL^RWUc 解答:题目说是变异凯撒,那么就对比一下开头几个字符与flag的数值差,可以看到是偏移数值以step 1的步长逐渐增长。 在这里插入图片描述 写个小脚本解密一下。

#我弄了一个自己用的类,可以直接写里面的方法
class JZcaesa():
    def bianyi(self,str,offset,step):
        result=""
        for i in str:
            result+=chr(ord(i)+offset)
            offset+=step
        return result
str="afZ_r9VYfScOeO_UL^RWUc"
flag=JZcaesa().bianyi(str,5,1)
print(flag)   
#flag{Caesar_variation}  
003 Url编码

题目:%66%6c%61%67%7b%61%6e%64%20%31%3d%31%7d 解答:用hackbar就可以url解码。 flag{and 1=1} 在这里插入图片描述

004 传感器

题目: 在这里插入图片描述

解答:传感器,提示曼联,数据由5、6、9、a组成,可以知道这就是曼彻斯特编码。

使用工具获取结果。 (工具下面附的那个内容链接里有,我就不附了) 在这里插入图片描述

或者用脚本:

cipher='5555555595555A65556AA696AA6666666955'
def iee(cipher):
    tmp=''
    for i in range(len(cipher)):
        # eval讲十六进制字符串转为数值(本质是表达式计算)
        # 然后bin再转为二进制,[2:]去掉‘0b’,zfill(4)指定字符串长度为4(如:110-->0110)
        a=bin(eval('0x'+cipher[i]))[2:].zfill(4)
        tmp=tmp+a[1]+a[3]
        #print(tmp)
    #8位一组,反向,再转十六进制
    plain=[hex(int(tmp[i:i+8][::-1],2))[2:] for i in range(0,len(tmp),8)]
    print(''.join(plain).upper())

iee(cipher)

进一步学习:

crypto之曼彻斯特编码

005 robomunication

题目:xxxxxx 解答:给了一个mp3 mp3,听着像摩斯,记录一下。 .... . .-.. .-.. --- .-- .... .- - .. ... - .... . -.- . -.-- .. - .. ... -... --- --- .--. -... . . .--.

解密得到:HELLOWHATISTHEKEYITISBOOPBEEP (翻一下就是,你好,key是什么,是BOOPBEEP)

flag{BOOPBEEP}

006 MD5

题目:e00cf25ad42683b3df678c61f42c6bda 解答: 找个线上md5爆破:md5爆破网址 在这里插入图片描述

flag{admin1}

MD5CrackSp:一个小的爆破md5的工具,可以爆破简单密码的md5。(一般不建议) 在这里插入图片描述

007 Quoted-printable

题目:=E9=82=A3=E4=BD=A0=E4=B9=9F=E5=BE=88=E6=A3=92=E5=93=A6 解答:Quoted-printable:可打印字符引用编码 写脚本解一下:

class JZcrypto_else():
    def quoted(self,encode_str):
        decode_str=quopri.decodestring(encode_str)
        return decode_str
        
str="=E9=82=A3=E4=BD=A0=E4=B9=9F=E5=BE=88=E6=A3=92=E5=93=A6"
#需要输出中文,就需要后面的.decode('utf8')
flag=JZcrypto_else().quoted(str).decode('utf8')
print(flag)
#最后的flag:那你也很棒哦
008 丢失的MD5

题目:xxxxxx 解答:给了一个md5的爆破脚本。python2的,运行后就出flag。 在这里插入图片描述 在这里插入图片描述

009 传统知识+古典密码

题目: 在这里插入图片描述

解答:六十甲子顺序表: 在这里插入图片描述

辛卯28,癸巳30,丙戌23,辛未8,庚辰17,癸酉10,己卯16 ,癸巳30 ,然后是加甲子 60,即88 90 83 68 77 70 76 90,得到八个数字,尝试用ASCII码解密,得到XZSDMFLZ。

题目又说古典密码。古典密码主要有栅栏,凯撒,培根,摩丝等等。 尝试凯撒解密,没有结果。尝试栅栏解密,获取两个xsmlzdfz,xmzfsldz,也不对。把栅栏的两个结果分别凯撒尝试一下,出了结果。

最终步骤:先是栅栏解密得XMZFSLDZ(key=2),然后再凯撒解密,得SHUANGYU(key=5)

flag{SHUANGYU}

010 password

题目: 在这里插入图片描述

解答: 社工题,可以猜一下。 10个字符,名字首字母+生日刚好10个字符。尝试正确。 flag{zs19900315}

关注
打赏
1662624000
查看更多评论
立即登录/注册

微信扫码登录

0.0481s