简单的图片

文章正文
发布时间:2024-12-20 14:51

攻防世界-简单的图片

1 首先拿到图片是一张非常朴实的图片

IM

用010打开发现没什么特别之处

image-20240728213741864

因为是png图片猜测是lsb隐写,居室保洁13825404095这里一开始我用的zsteg发现提取不全

image-20240728215837701

用Stegsolve打开看看,尝试了半天发现什么特殊信息,最后发现位平面顺序即bit plane order这一选项要选择BGR,得到下图

image-20240728214436887

发现有一连串的以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列表中的所有元素,并将它们连接成一个字符串