CTF
  • Introduction
  • IDF 实验室
    • 牛刀小试
      • 被改错的密码
      • ASCII 码而已
      • 聪明的小羊
      • 摩斯密码
      • 啥?
    • CRYPTO 百密一疏
      • 笨笨的小猪
      • 凯撒加密
      • 孔子的学费
      • 特殊的日子
      • 伟人的名字
    • WEB天罗地网
      • COOKIE欺骗
      • 不难不易的js加密
      • 超简单的js题
      • 古老的邮件编码
      • 简单的js解密
      • 你关注最新的漏洞吗
      • 一种编码而已
    • STEGA万里寻踪
      • 图片里的秘密
      • 上帝也哭泣
      • 红与黑
    • PPC初探乾坤
      • 简单编程-字符统计
      • Fuck your brain
      • 谁是卧底
    • REVERSE倒行逆施
      • 简单的PE文件逆向
      • 简单的ELF逆向
      • python ByteCode
    • MISC包罗万象
      • 图片里的英语
      • 抓到一只苍蝇
  • 实验吧
    • WEB
      • 登陆一下好吗??
      • 注入
      • 简单的sql注入
      • Forms
Powered by GitBook
On this page
  • 题目
  • write up
  • Python Script

Was this helpful?

  1. IDF 实验室
  2. CRYPTO 百密一疏

特殊的日子

题目

每个人的一生中都会或多或少有那么几个对自己很重要的日子,比如对于我来说,这一天就很重要。

答案格式wctf{日期} //友情提示,此题需要暴力破解,但只是爆破这段密文,不是爆破这个网站。。 = =!

就是这一天↓

4D1FAE0B

write up

看了网上的答案,说是用 crc32 编码,然后爆破就行了。所以自己参考了代码,用 Python 解决了

kali 神器啊,hashid命令:可以跑出可能的加密算法!!!!

已知是 crc32 算法,Python 的库 binascii 带有 crc32() 函数可以进行计算,参考 py 文件。

Tip:

  • 转成 bytes 字节流

  • zfill 补 0

  • hex 后前缀 0x

  • return 跳出多重循环

Python Script

import binascii

def solve(key):
    for year in range(3000):
        for month in range(1,13):
            for day in range(1,32):
                date = str(year).zfill(4) + \
                       str(month).zfill(2) + \
                       str(day).zfill(2) #记得补0,要不然形式错
                crc32_date = binascii.crc32(bytes(date, "utf-8")) \
                             #3.X版本要像都要这样bytes
                crc32_date = (hex(crc32_date).upper())[2:]  #hex后形式为0x
                if crc32_date == key:
                    print(date)
                    return #跳出多重循环

if __name__ == '__main__':
    crc32_date = "4D1FAE0B"
    solve(crc32_date)
    input("输入任意键结束")
Previous孔子的学费Next伟人的名字

Last updated 5 years ago

Was this helpful?