One pieNG一张图片十八个flag复现
#St4rt_fr0m_th1s_5tr1ng#
文件名直接白给一个
#Th1s_i5_s0_34sy!!!#
打开又白给一个
#You_st3gs0lved_me!!!#
放到Stegslove又白给一个
#LSB_1s_v3ry_e4sy_righ7?#
lsb发现一个
#He110_I_4m_Tw0_PieNG#
foremost又白给一个
#A_k3y_1n_exif#
放到010里面又白给一个
#Pn9_He1gh7_6e_ch4ng3d#
改高度又发现一个
#Ju5t_a_1one1y_tEXt_chunk#
不愧是套娃题,优美的文件结构
#An0th3r_key_1n_3xif#
一段看起来像base编码的,根据前面的b58知道是base58编码
#HexEditor_wi11_b3_helpfu1#
放到kali里zsteg一把梭出来一个
#IDAT_i5_a_alib_p4cka9e#
发现有一个IDAT块不正常,数据太少
发现是这段十六进制,是zlib数据,这里用脚本跑一下
1 | import zlib |
#M4yb3_we_sh0uld_9o_d33per#
把高度改得再大一点
发现
#A_key_fr0m_Ph0t0sh0p#
用exiftool查看发现一段十六进制
转换得到flag
#zsteg_do35_no7_a1w4ys_w0rk#
看了mumuzi的wp才知道用Stegsolve切换通道在左上角可以看到隐写的痕迹,比如在Alpha plane7就可以看到明显的痕迹
同时在Red plane7、Blue plane7、Green plane7也可以看到一样的痕迹,又因为痕迹是竖着的,所以如图这么选可以看到flag
在原图里也可以看到明显的彩色的痕迹
#5omet1mes_LSB_g0es_co1o mn_f1r5t#
继续这样子观察隐写痕迹,
可以发现Red plane0、1和Green plane0、1都十分相似,果然发现了flag
前提是高度和crc都修复了
#Wh4t_1s_6it_0rder_4nd_y0u_c4n_LSB_b1nd4ta_to0#
然后在rgb三个通道的1和2都发现了一样长的黑线
发现了压缩包
save bin后解压失败,在010里面把多余的部分去掉就可以解压了
#eXtr4_IDAT_of_an0th3r_Pn9#
前面用pngdebugger跑的时候发现IDAT块特别多,虽然foremost出来一张图片,但是很小,所以把前面报错的IDAT块在Tweakpng删掉然后导出
发现
好家伙
#H1de_h3xd47a_1n_chunk_CRC#
一般情况下,IDAT块都是满65524就进入下一个的,如图
但是前面报错的部分有几个连续的都是65536,比较可疑
有8个这样子的块,pngdebugger里面发现crc前两位都是00,这样子可以提取出8*6=48个数字
转换得
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kenoeee!