Misc-如来十三掌WriteUp

文章目录

  • 如来十三掌
    • 题目分析
    • 总结

如来十三掌

Misc-如来十三掌WriteUp_第1张图片

夜哆悉諳多苦奢陀奢諦冥神哆盧穆皤三侄三即諸諳即冥迦冥隸數顛耶迦奢若吉怯陀諳怖奢智侄諸若
奢數菩奢集遠俱老竟寫明奢若梵等盧皤豆蒙密離怯婆皤礙他哆提哆多缽以南哆心曰姪罰蒙呐神。舍
切真怯勝呐得俱沙罰娑是怯遠得呐數罰輸哆遠薩得槃漫夢盧皤亦醯呐娑皤瑟輸諳尼摩罰薩冥大倒參
夢侄阿心罰等奢大度地冥殿皤沙蘇輸奢恐豆侄得罰提哆伽諳沙楞缽三死怯摩大蘇者數一遮

题目分析

打开文件,是上面的一段文字,像是佛教的文字,一开始也不懂,查资料知道这题考察的是"与佛论禅解密",用在线解密网站解密
Misc-如来十三掌WriteUp_第2张图片
与佛论禅解密后得到一个字符串

MzkuM3gvMUAwnzuvn3cgozMlMTuvqzAenJchMUAeqzWenzEmLJW9

看到字母和数字,尝试base64解密,解密出来是乱码,显然不对。
我没想到是rot13,(做这道题时都不知道这个加密算法),查资料发现这串字符串是经过了一次rot13加密(怎么看出来呢,我觉得就是猜,也没给什么提示啊),然后又经过一次base64编码,rot13解密可以自己写脚本,也可以用在线解密。
写一段脚本得到flag

import base64

def rot13_code(crypt_str,shift):
    # crypt_str = list(crypt_str)
    flag = ""
    num = int(shift)
    for ch in crypt_str:
        ch = ord(ch)
        if ord('a') <= ch <= ord('z'):
            ch += num
            if ch > ord('z'):
                ch -= 26

        if ord('A') <= ch <= ord('Z'):
            ch += num
            if ch > ord('Z'):
                ch -= 26
        flag += chr(ch)
    return flag

print(base64.b64decode(rot13_code('MzkuM3gvMUAwnzuvn3cgozMlMTuvqzAenJchMUAeqzWenzEmLJW9',13)))

运行结果:
b'flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}'

总结

考察"与佛论禅"、rot13、base64编码。对于自己的不了解的知识可以快速利用搜索引擎找资料学习一下,有些题目中并不是考察的所有知识都是知道的。

你可能感兴趣的:(ctf解题)