CTF学习 - [Unfinished] - DEADFACE 2021

文章提供了一段Python代码,该代码旨在将十六进制字符串转换为ASCII以获取flag。通过使用`binascii.unhexlify`函数去除十六进制化并用UTF-8解码,修复了原始代码的问题。此外,还推荐了CyberChef工具来简化类似的数据转换任务。
摘要由CSDN通过智能技术生成

题目:这段python代码似乎有些问题,修改代码让它返回正确的flag

from binascii import unhexlify as u

def get_flag():
    flag = '666c61677b30682d6c6f6f6b2d612d466c61477d'
    return u(flag).decode('utf-8')

print(f'The flag is: ')

**************************************************************************************************************

解题关键:十六进制转ASCII

解题思路:

1. 题目中已经给出flag的十六进制字符串

2. 使用python中的binascii库的unhexlify(去十六进制化),用utf-8标准解码

3. 将十六进制字符转换为ASCII字符, 得到flag

import binascii

hex_string = '666c61677b30682d6c6f6f6b2d612d466c61477d'
ascii_string = binascii.unhexlify(hex_string).decode('utf-8')

print(f'The flag is: {ascii_string}')

 运行后得到结果:

The flag is: flag{0h-look-a-FlaG}

************************************************************************************************************** 

简易解法:

这里推荐一个工具集CyberChef , 可以实现各种类型的数据转换、密码解析等功能,也可以在CyberChef侧边栏搜索magic方法, 自动进行文本识别与可能的数据转换。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值