下载附件,是一个解压后是一个数据包,wireshark打开分析,很明显,这是一个文件上传的数据包,分析数据包内容:
很明显,是一个文件上传的数据包。
接着看看他到底上传了什么数据:
很明显,是上传了一张steghide.jpg的图片
那我们可以尝试着在数据包中将图片还原出来在上传图片的数据包中。
指定上传流量的会话,显示和保存的数据改为原始数据,然后将其保存为:steghide.jpg
接着利用WinHex从保存的原始文件中将上传的图片还原出来。
将之前保存的steghide.bin用WinHex打开,可以看到文件中包含HTTP请求信息以及我们的图片信息,还有文件结尾的尾部信息。我们需要做的事情是确定图片文件的原始信息头和尾,并去掉多余的部分。
回到Wireshark中,会看到我们刚才的数据流中关于图片的头部分。
在Content-Type: image/jpeg后面有两个换行符,在原始文件中换行符用十六进制表示是 “0D0A”,因为有两个,所以我们在十六进制搜索“0D0A0D0A”,后面的部分就表示图片的开始。
可以发现第二个“0D0A0D0A”,后面的部分就表示图片的开始。
这时候我们需要去掉图片以上的部分。在00000000偏移处点击alt+1,表示选块开始。
在我们找到的“0D 0A 0D 0A”处的最后一个0A处点击alt+2.表示选块结束。这时候,我们就选中了图片之前的多余部分。
将文件中的多余头部确认删除。
回到wireshark中,我们看看图片传送完毕之后的尾部部分。可以看到,这次是一个换行符0D0A,后面有些文件结束标志“-------------”。
同样在原始文件中删除它们。
这时候我们的文件中就仅仅是原始图片的内容了,将文件另存为steghide.jpg。
然后这里就是普通的隐写了,这里根据steghide.jpg的文件名,也可以知道,应该是steghide文件隐藏。kali中没有自带,需要自己下载:
apt-get install steghide
查看图片中是否有嵌入文件的信息:
steghide info steghide.jpg
这里需要密码验证,密码123456。可以看到里面有一个隐藏的flag.txt文件。
接着提取图片中隐藏的文件 , 需要再次输入密码 。
steghide extract -sf steghide.jpg
得到flag:
flag{
tell_me_y0u_like_it}