[QCTF2018]X-man-Keyword

"本文讲述了如何通过LSB隐藏和Nihilist加密解决QCTF2018的X-man-Keyword挑战。使用'lovekfc'作为关键词,进行替换解密,揭示了密文PVSF{vVckHejqBOVX9C1c13GFfkHJrjIQeMwf}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目链接

https://buuoj.cn/challenges#[QCTF2018]X-man-Keyword

注意:在Github里有题目描述,而BUUCTF平台上没有提示。

在这里插入图片描述

Welcome to QCTF

hint1:把给出的keyword放到前面试试

hint2:一种把关键词提前的置换

解题过程

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

在这里插入图片描述
”lovekfc“应该是和hint2里提到的关键词。用binwalk分析,没有什么东西。在stegsolve里也没有发现异常。在kali用lsb.py试试:

python2 lsb.py extract attachment.png attachment.txt lovekfc

在这里插入图片描述
查看attachment.txt文件,得到密文:

在这里插入图片描述

PVSF{vVckHejqBOVX9C1c13GFfkHJrjIQeMwf}

根据“hint1:把给出的keyword放到前面试试”的提示,从26个英文字母里把 “lovekfc”提出来放到前面做密钥。

lovekfcabdghijmnpqrstuwxyz

然后根据密钥替换密文中的字母解密(应该是Nihilist加密),这步用脚本来实现:

# -*- coding:utf-8 -*-
import string

ciphertext = 'PVSF{vVckHejqBOVX9C1c13GFfkHJrjIQeMwf}'
secretkey = 'lovekfcabdghijmnpqrstuwxyz'
plaintext = ''

for letter in ciphertext:
    if letter in string.ascii_lowercase:
        index = secretkey.lower().index(letter)
        plaintext += string.ascii_lowercase[index]
        continue
    if letter in string.ascii_uppercase:
        index = secretkey.upper().index(letter)
        plaintext += string.ascii_uppercase[index]
        continue
    plaintext += letter

print(plaintext)

运行结果:

QCTF{cCgeLdnrIBCX9G1g13KFfeLNsnMRdOwf}

小结

知识点:lsb隐写、Nihilist加解密。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangjin7356

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值