crypto-Harvesting Season(b01lers ctf 2020)

题目是一张图片fr3sh_h4rv3st.jpg:
fr3sh_h4rv3st.jpg
二进制看了一下没发现什么特别,查看一下exif信息:
EXIF
有个信息比较可疑,此处应该就是密文

艺人: 1921754512366910363569105a73727c592c5e5701715e571b76304d3625317c1b72744d0d1d354d0d1d73131c2c655e

结合题目提示语:

Can you xor your way out of this? (Length of key: 4)

推测本题要使用异或方式解密,密钥长度为4

由于最终flag是以pctf四个字母开头,那么可以知道明文的前4个字节b’pctf’与密钥4个字节异或的结果就是密文前四个字节。
反过来用密文前四个字节与b’pctf’进行异或,就能得到密钥key
最终exp:

from Crypto.Util import * 
c = 0x1921754512366910363569105a73727c592c5e5701715e571b76304d3625317c1b72744d0d1d354d0d1d73131c2c655e
c = long_to_bytes(c)

head = b'pctf'
key = b''
for i in range(len(head)):
    key += chr(c[i] ^ head[i]).encode()

m = b''
for j in range(len(c)):
    m += chr(c[j] ^ key[j%4]).encode()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值