攻防世界-简单的图片
1 首先拿到图片是一张非常朴实的图片
用010打开发现没什么特别之处
因为是png图片猜测是lsb隐写,这里一开始我用的zsteg发现提取不全
用Stegsolve打开看看,尝试了半天发现什么特殊信息,最后发现位平面顺序即bit plane order这一选项要选择BGR,得到下图
发现有一连串的以xsctf这五个字符组成的字符串,将他们提取出来得到
['xxfxc', 'xxfst', 'xxtfc', 'xxfxt', 'xxfft', 'xxttc', 'xxffs', 'xxsft', 'xxftc', 'xxtfx', 'xxtfc', 'xxfcf', 'xxfxs', 'xxtfx', 'xxctx', 'xxfcx', 'xxtfx', 'xxsff', 'xxfsf', 'xxtfc', 'xxfxt', 'xxcxs', 'xxtfx', 'xxfsf', 'xxtfc', 'xxftx', 'xxfts', 'xxfxs', 'xxfcf', 'xxsfc', 'xsxxx']
但是这一串字符有什么用呢,没什么思路,最后经大佬提点,发现这是有规律的,而且xsctf是出题者,不妨设想一下,将xsctf按顺序用01234代替,这样我们就得到了一个五进制列表。最后写一个脚本将之转换为十进制后再转换为字符串得到flag
flag{\y0u_are_An_1mag3_master/}
附上脚本:
string = "xxfxcxxfstxxtfcxxfxtxxfftxxttcxxffsxxsftxxftcxxtfxxxtfcxxfcfxxfxsxxtfxxxctxxxfcxxxtfxxxsffxxfsfxxtfcxxfxtxxcxsxxtfxxxfsfxxtfcxxftxxxftsxxfxsxxfcfxxsfcxsxxx"
sum1 = ''
for i in string: # 遍历字符串,将字母替换为对应数字
if i == 'x':
sum1 = sum1 + '0'
elif i == 's':
sum1 = sum1 + '1'
elif i == 'c':
sum1 = sum1 + '2'
elif i == 't':
sum1 = sum1 + '3'
elif i == 'f':
sum1 = sum1 + '4'
num = []
for j in range(0,len(sum1),5): # 将每5位数字作为一个元素添加到列表中
num.append(sum1[j:j+5])
print(num)
flag = []
for number in num: # 将每5位数字转为十进制数,并转换为对应的字符
ss = int(number[0]) * 54 + int(number[1]) * 53 + int(number[2]) * 52 + int(number[3]) * 51 + int(number[4]) * 5**0
flag.append(chr(ss))
print(''.join(flag)) # 打印flag列表中的所有元素,并将它们连接成一个字符串