攻防世界——简单的图片

今天来做一道图片隐写的题目

题目如下

先解压附件

得到一张png图片

还是先打开010看看有没有什么东西

没啥发现

用binwalk看看有没藏东西

因为是png图片猜测是lsb隐写

用zsteg发现一串字符

但不是很完整

我们使用Stegsolve

把它提取出来

到这一步我卡住了,后面看了其它大佬的文章

发现可以把它变成5进制,出题人的名字叫xsctf,我们可以用01234来代替

这样就获得了一个5进制表,再把这个5进制表转换成10进制,最后转换成字符串

直接上代码

flag = 'xxfxcxxfstxxtfcxxfxtxxfftxxttcxxffsxxsftxxftcxxtfxxxtfcxxfcfxxfxsxxtfxxxctxxxfcxxxtfxxxsffxxfsfxxtfcxxfxtxxcxsxxtfxxxfsfxxtfcxxftxxxftsxxfxsxxfcfxxsfcxsxxx'
flag1 = ''
for i in flag:
    if i == 'x':
        flag1 = flag1 + '0'
    elif i == 's':
        flag1 = flag1 + '1'
    elif i == 'c':
        flag1 = flag1 + '2'
    elif i == 't':
        flag1 = flag1 + '3'
    elif i == 'f':
        flag1 = flag1 + '4'


# 将每5位数字作为一个元素添加到列表中
num_list = [flag1[i:i+5] for i in range(0, len(flag1), 5)]

# 将每5位数字转为十进制数,并转换为对应的字符
flag = []
for number in num_list:
    # 将五进制数转换为十进制
    decimal_value = int(number, 5)
    # 将十进制数转换为字符,并添加到结果列表
    flag.append(chr(decimal_value))

# 打印结果
print(''.join(flag))

运行一下输出flag

flag{\y0u_are_An_1mag3_master/}

  • 15
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值