魔幻数字,文件分析的利器

首先告诉大家这个flag的位置是在metasploitable3的80端口。当通过浏览器访问它时,你会看到

原始的图片

hahaha.jpg

所以,我们去查看一下元素,是不是有什么猫腻

2.png

原来这里有段隐藏的表单代码!大家可以了解一下asp.net的视图状态。理解隐藏表单代码的作用

点击这里进入MSDN

而这段代码里 就隐藏着咱们需要的flag

将这段代码复制出来 我们来分析分析!

将字符串用gedit写入名为file的文件

3.png

我们可以看到,字符串的范围为0~9,a~f。可以判断出是十六进制编码。所以我们将编码转储然后重新转回二进制来查看一下文件的头(文件头一般情况下回包含文件的type信息,可以判断出文件类型,而这串头字符串也被称为魔术字符

QQ截图20161222142823.png

这里用到的命令为:head(显示开头一定数量的文字区块) 和 xxd (用二进制/十六进制模式打开)

5.png

再与魔术字符进行对比(魔术字符的含义 大家可以去百度一下啊)
我将常用的写出来

JPG(FFD8FFE000104A464946)
PNG(89504E470D0A1A0)
GIF(47494638396126026F01)
TIF(49492A00227105008037”)
BMP16(“424D228C010000000000”)16色位图(bmp)
BMP24(“424D8240090000000000”) // 24位位图(bmp)
BMP256(“424D8E1B030000000000”)// 256色位图(bmp)
DWG(“41433130313500000000”)
HTML(“3C21444F435459504520”)
HTM(“3C21646F637479706520”)
CSS(“48544D4C207B0D0A0942”)
JS(“696B2E71623D696B2E71”)
RTF(“7B5C727466315C616E73”)
PSD(“38425053000100000000”)
EML(“46726F6D3A203D3F6762”)
DOC(“D0CF11E0A1B11AE10000”)

6.png

这里可以判断出这是个png图片,然后我们将file文件格式化为png图片

7.png

然后查看一下!!

8.png

OK 已经找到我们的flag了!!


总结一下

我们的文件大都会有魔幻数来指明文件类型,这对我们来分析文件很有帮助,所以要掌握常用的‘魔数’。