攻防世界XCTF-密码破译入门12题解题报告

听说你想学习破译密码(crypto)?这可是CTF中最冷门的鸭,你可真是个奇怪的人。还不如学习WEB安全,快去渗透它吧,给个好评哟~如果你坚持要搞crypto,那就来挑战12道新手密码题吧。相信我,你会转去做WEB安全的。如果你硬着皮头,搞到底,你会发现你是没朋友滴,嘿嘿,渗透大法好~

v2-221dd0056a2a948949e52b15e6da7391_720w.jpg?source=b555e01d

WEB安全攻防入门

作者 ailx10

会员专享¥9.99

去查看​

攻防世界XCFT刷题信息汇总如下:攻防世界XCTF黑客笔记刷题记录 ,收藏一下哈~

v2-b15fa15a4bfb9d154487bb4455dcf3ab_720w.jpg?source=b3da7235

ailx10

969 次咨询

4.9

网络安全优秀回答者

网络安全硕士

去咨询

第一题:考察Base64编码

v2-ab6d2d3d40925bce18dcf0b96e01ef18_1440w.jpg

解题报告:

打开附件,里面是一串Base64的字符串,解码就行咯

echo -n "Y3liZXJwZWFjZXtXZWxjb21lX3RvX25ld19Xb3JsZCF9" | base64 -d

v2-ed23d4e5b892465ff88fda9392f17401_1440w.jpg

第二题:考察凯撒密码

v2-b494490d4375c00c6f938da4f4c4ba46_1440w.jpg

解题报告:

写一个python小脚本就是咯,这种脚本是必备的,萌新默默记在小本子里吧~

str1 = "oknqdbqmoq{kag_tmhq_xqmdzqp_omqemd_qzodkbfuaz}"
num = 26

def caesar(str="123",num=1):
    l = list(str)
    i = 0
    while i < len(l):
        if l[i]>='0' and l[i]<='9':
            i = i+1
        elif l[i]>='a' and l[i] <='z':
            l[i]=chr(ord('a')+(ord(l[i])+num-ord('a'))%26)
            i =i+1
        elif l[i]>='A' and l[i] <='Z':
            l[i]=chr(ord('A')+(ord(l[i])+num-ord('A'))%26)
            i=i+1
        else:
            i =i+1
    ans = "".join(l)
    return ans


for i in range(num):
    caesar_str = caesar(str1,i)
    print(caesar_str)

v2-11fcb956ceed2216a050dfa2e0eb8c3a_1440w.jpg

第三题:考察莫斯密码

v2-01f4a1b5176d19fc4340e0740f222ca9_1440w.jpg

解题报告:

写一个小脚本,莫斯密码就可以不求人啦

dict1 = {'0': '.',
        '1': '-',
        ' ': '/'
        };

dict2 = {'.-': 'a',
        '-...': 'b',
        '-.-.': 'c',
        '-..':'d',
        '.':'e',
        '..-.':'f',
        '--.': 'g',
        '....': 'h',
        '..': 'i',
        '.---':'j',
        '-.-': 'k',
        '.-..': 'l',
        '--': 'm',
        '-.': 'n',
        '---': 'o',
        '.--.': 'p',
        '--.-': 'q',
        '.-.': 'r',
        '...': 's',
        '-': 't',
        '..-': 'u',
        '...-': 'v',
        '.--': 'w',
        '-..-': 'x',
        '-.--': 'y',
        '--..': 'z',
        '.----': '1',
        '..---': '2',
        '...--': '3',
        '....-': '4',
        '.....': '5',
        '-....': '6',
        '--...': '7',
        '---..': '8',
        '----.': '9',
        '-----': '0',
        '/': ' '
        };


enc_str0="11 111 010 000 0 1010 111 100 0 00 000 000 111 00 10 1 0 010 0 000 1 00 10 110"
enc_str1=""
dec_str=""
for i in enc_str0:
  enc_str1+=dict1[i]
enc_str1=enc_str1.split("/")
for i in enc_str1:
  dec_str += dict2[i]
print(dec_str)

v2-62e7de49c8a5163ceb2d702af5dfab38_1440w.jpg

如果遇到这种外国版的甲骨文(图片代表字符),只能上机器学习了。

v2-56913488c3cf8ff01cee4f5d44e30fb6_1440w.jpg

第四题:考察base64和ASCII编码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值