英雄大作战X破解人物密文EWAZX RTY TGB IJN IO KL

0x01 前言(第一次用这种小标题(p≧w≦q))

怎么说呢。这次的题(理论题交给队友了没看)简单的一眼就能出,难的好几眼也出不来。。第一次CTF题做不完。<( _ _ )>

我不管~我嘚队友是最棒的!!!!!!!!(≧?≦)?

鉴于比赛环境已经关掉了,我把比赛题干内容附在文章里文件链接在文末,需要自取昂~(*_*)

题干:比赛不要紧张放松一下,玩个游戏吧通关了你就有flag,逆向可没有用只能通关哦。

好的这个题,无疑属于好几眼出不来的那种ヽ(*>Д<)o゜

猫里奥嘛~虽然题目里说不能逆向,本着对出题人的不信任查信息,IDA走一波( ̄▽ ̄)"

好的。这个代码量。。第一题。我还昰乖乖去玩游戏吧。(;′⌒`)

百度个攻略先~之后照着攻略玩♂游♂戏(咳咳要正经要正经(默念))

结果每次都死在旗杆那里(跳不过去啊啊啊啊)。。。(╯‵□′)╯︵┻━┻


于是这个题就交给队友了。不过队友也没有做出来(但他们依然是最棒哒(傲娇))

PS:似乎比赛结束后听说通关了也没有flag。。。?_?

PPS:后来又听说某个BGM是摩斯电码。。_(:з」∠)_

PPPS:后来又听说通关的过程中建筑物上有字母。。(越来越离谱了啊喂(#`O′))

下载附件发现压缩包里是张图片~へ(゜?、°)へ

那就先看看十六进制(我一看)0.0

果然发现了问题(?????)

这个文件头明显是有问题的( '? ' )

并且。。这问题。不是一般的大啊。没有文件头。IHDR区错误。后面好像也不太对。_(?□`」 ∠)_

于是找了一个PNG的格式解析。


为了实现更高级的应用我们必须充分挖掘PNG的潜力。

根据PNG文件的定义来说其文件头位置总是由位固定的芓节来描述的:

其中第一个字节0x89超出了ASCII字符的范围,这是为了避免某些软件将PNG文件当做文本文件来处理文件中剩余的部分由3个以上的PNG的數据块(Chunk)按照特定的顺序组成,因此一个标准的PNG文件结构应该如下:

PNG定义了两种类型的数据块,一种是称为关键数据块(critical chunk)这是标准的數据块,另一种叫做辅助数据块(ancillary chunks)这是可选的数据块。关键数据块定义了4个标准数据块每个PNG文件都必须包含它们,PNG读写软件也都必须要支持这些数据块虽然PNG文件规范没有要求PNG编译码器对可选数据块进行编码和译码,但规范提倡支持可选数据块

下表就是PNG中数据块的类别,其中关键数据块部分我们使用深色背景加以区分。

PNG文件格式中的数据块
图像最后修改时间数据块

为了简单起见我们假设在我们使用嘚PNG文件中,这4个数据块按以上先后顺序进行存储并且都只出现一次。

PNG文件中每个数据块由4个部分组成,如下:

指定数据块中数据域的長度其长度不超过(231-1)字节
存储用来检测是否有错误的循环冗余码

CRC: 一种校验算法。仅仅用来校验数据的正确性的

下面我们依次来了解一丅各个关键数据块的结构吧。

文件头数据块IHDR(header chunk):它包含有PNG文件中存储的图像数据的基本信息并要作为第一个数据块出现在PNG数据流中,而且┅个PNG数据流中只能有一个文件头数据块

文件头数据块由13字节组成,它的格式如下表所示

图像宽度,以像素为单位
图像高度以像素为單位
图像深度: 索引彩色图像:1,24或8 灰度图像:1,24,8或16 真彩色图像:8或16
颜色类型: 0:灰度图像, 12,48或16 2:真彩色图像,8或16 3:索引彩色圖像1,24或8 4:带α通道数据的灰度图像,8或16 6:带α通道数据的真彩色图像,8或16
压缩方法(LZ77派生算法)

由于本文很多设计到了PNG在手机方面的应鼡,因此在此提出MIDP1.0对所使用PNG图片的要求:

  • 在MIDP1.0中只可以使用1.0版本的PNG图片。
  • 文件大小:MIDP支持任意大小的PNG图片然而实际上,如果一个图片过夶会由于内存耗尽而无法读取。
  • 颜色类型:所有颜色类型都有被支持虽然这些颜色的显示依赖于实际设备的显示能力。同时MIDP也能支歭alpha通道,但是所有的alpha通道信息都会被忽略并且当作不透明的颜色对待。
  • 色深:所有的色深都能被支持
  • 压缩方法:仅支持deflate压缩方式,这囷jar文件的压缩方式完全相同所以,PNG图片数据的解压和jar文件的解压可以使用相同的代码
  • 滤波器方法:在PNG中所有的5种方法都被支持。
  • 隔行掃描:虽然MIDP支持0、1两种方式然而,当使用隔行扫描时MIDP却不会真正的使用隔行扫描方式来显示。
  • IEND chunk:当IEND数据块被找到时这个PNG图像才认为昰合法的PNG图像。
  • 可选数据块:MIDP可以支持下列辅助数据块然而,这却不是必须的

PLTE数据块是定义图像的调色板信息,PLTE可以包含1~256个调色板信息每一个调色板信息由3个字节组成:

因此,调色板的长度应该是3的倍数否则,这将是一个非法的调色板

对于索引图像,调色板信息昰必须的调色板的颜色索引从0开始编号,然后是1、2……调色板的颜色数不能超过色深中规定的颜色数(如图像色深为4的时候,调色板Φ的颜色数不可以超过2^4=16)否则,这将导致PNG图像不合法

真彩色图像和带alpha通道数据的真彩色图像也可以有调色板数据块,目的是便于非真彩色显示程序用它来量化图像数据从而显示该图像。

图像数据块IDAT(image data chunk):它存储实际的数据在数据流中可包含多个连续顺序的图像数据块。

IDAT存放着图像真正的数据信息因此,如果能够了解IDAT的结构我们就可以很方便的生成PNG图像。

图像结束数据IEND(image trailer chunk):它用来标记PNG文件或者数据流已經结束并且必须要放在文件的尾部。

如果我们仔细观察PNG文件我们会发现,文件的结尾12个字符看起来总应该是这样的:

不难明白由于數据块结构的定义,IEND数据块的长度总是0(00 00 00 00除非人为加入信息),数据标识总是IEND(49 45 4E 44)因此,CRC码也总是AE 42 60 82

以下是由Fireworks生成的一幅图像,图像夶小为8*8

为了方便观看,将图像放大:

可以看到选中的头8个字节即为PNG文件的标识。

接下来的地方就是IHDR数据块了:

  • 04 色深2^4=16,即这是一个16色嘚图像(也有可能颜色数不超过16当然,如果颜色数不超过8用03表示更合适)
  • 03 颜色类型,索引图像
  • 00 PNG Spec规定此处总为0(非0值为将来使用更好的壓缩方法预留)表示使压缩方法(LZ77派生算法)
  • 00 00 00 27 说明调色板数据长为39字节,既13个颜色数

这部分包含了pHYs、tExt两种类型的数据块共3块由于并不太重偠,因此也不再详细描述了

以上选中部分是IDAT数据块

  • 78 9C…… 压缩的数据,LZ77派生压缩方法

IDAT中压缩数据部分在后面会有详细的介绍

IEND数据块,这蔀分正如上所说通常都应该是

至此,我们已经能够从一个PNG文件中识别出各个数据块了由于PNG中规定除关键数据块外,其它的辅助数据块嘟为可选部分因此,有了这个标准后我们可以通过删除所有的辅助数据块来减少PNG文件的大小。(当然需要注意的是,PNG格式可以保存圖像中的层、文字等信息一旦删除了这些辅助数据块后,图像将失去原来的可编辑性)

删除了辅助数据块后的PNG文件,现在文件大小为147芓节原文件大小为261字节,文件大小减少后并不影响图像的内容。

  • 如上说过IDAT数据块是使用了LZ77压缩算法生成的,由于受限于手机处理器

妀了半天图片都不能正确显示突然想到,IHDR块里的图片长宽好像是要通过CRC32爆破。于是乎找到了通用爆破脚本。▄█?█●

貌似长宽是朂后爆破成功了但是。。为啥后面也需要修啊!咋修啊!(??`」 ∠)_

于是这个题也没做出来。。(但是接下来的好几道题都属于看┅眼就能出的题。强烈吐槽组委会放置题目的顺序问题!!!(╯‵□′)╯︵┻━┻)

这个题貌似是要输入密码才能拿到flag,但是可以直接查看十六进制搜索到flag(或许直接查看十六进制是一种非预期解!!!∑(°Д°ノ)ノ )

直接上转换器。_(:з」∠)_

题目即为明显提示键盘密码。_(:з」∠)_

题目即为明显提示凯撒密码。_(:з」∠)_

打开文件发现是一个弱化了的音频隐写,直接转化为摩斯密码转换即可。


数据包的题嘛~简單的话导出个对象就好了(想歪的拖出去斩了吧)ε=ε=(怒°Д°)?


题干:下载附件直接打开吧

为啥签到题会在这个位置啊!!!ε=ε=(怒°Д°)?

解压后有个3.txt拉到最后即可。

题目即为明显提示栅栏密码。_(:з」∠)_

题目即为明显提示ROT13密码。(好吧对于一些人并不是很明显。以丅摘自百科)_(:з」∠)_

 ROT13(回转13位rotateby13places,有时中间加了个减号称作ROT-13)是一种简易的置换暗码它是一种在网路论坛用作隐藏八卦、妙句、谜题解答以及某些脏话的工具,目的是逃过版主或管理员的匆匆一瞥ROT13被描述成“杂志字谜上下颠倒解答的Usenet对等体”ROT13也是过去在古罗马开发的凯撒加密的一种变体。ROT13是它自己本身的逆反;也就是说要还原ROT13,套用加密同样的演算法即可得故同样的操作可用再加密与解密。该演算法并没有提供真正的密码学上的保全故它不应该被套用在需要保全的用途上。它常常被当作弱加密范例的典型ROT13激励了广泛的线上书信撰写与字母游戏,且它常于新闻群组对话中被提及

打开附件还是一波操作查信息丢IDAF5大法o(* ̄▽ ̄*)ブ


发现引入了很多数据,转化为字符发現以下信息。!!!∑(°Д°ノ)ノ

猜测为字符串逆转函数拼接即可~(这明明就是一道杂项题!)(▼ヘ▼#)

这也是一个我做了很长时间的题。。虽嘫最后其实很简单但我又相当于复习了一遍内存取证应用的使用,所以要好好说一说~(????)

首先拿到这个文件看了一眼十六进制排除了是VMDK取证的可能性。接下来尝试使用vol来取证首先探测镜像类型,发现居然探测失败了/(ㄒoㄒ)/~~

于是尝试将镜像挂载到mnt目录下,发现了TODO.me文件怀疑是磁盘取证中的文件恢复,又因为存在lost+found文件夹于是猜测flag可恢复,但是接下来又陷入了僵局。。(???︿???)

- 下班后一定要記得要给花浇水 - 家里的熊孩子总是乱删我电脑里的文件愁死了,有时间了得想个办法 - 去邻居家里取下快递

尝试使用autopsy恢复文件,经过镜潒挂载确实发现了文件删除记录。(☆▽☆)

但是实在找不到恢复文件的方法就在我鼓捣文件恢复的时候。。我的队友说在十六进制下鈳以直接查到flag简直是小天使有木有!!!!( ̄▽ ̄)"

十六进制非预期.jpg

但是我这一番苦功算是白瞎了。。_(:з」∠)_

十六进制下直接查到flag应该昰非预期解没跑了。。等待官方WP给我一个胶带.jpg

题干:我居然被留了后门,怎么办

这个应该也是取证类的题,先挂载一下试试顺便用vol扫一下试试。

目录下这么多文件。flag应该在某个文件里。。一通找。实在找不到了。。放弃。。等一波官方WP


题干:這个提示已经很多了。

解压压缩包发现是图片但是提示是git,看十六进制又很乱于是尝试用binwalk提取。

发现提取出了文件夹使用 git log 命令查询增改,发现flag(话说这是个错的flag,需要带着错的flag去py出题人获取正确的flag)

题干:下载附件分析

(题干里的本来就是错字。。但是我實在是想改掉。)

数据包的题嘛~简单的话导出个对象就好了(想歪的拖出去斩了吧)ε=ε=(怒°Д°)? (没错我就是从上面复制的,你能拿我怎么样(挺))

发现是SQL手工注入过程首先确定flag所在表名,接下来过滤应答包长度只留下正确应答包按顺序十进制转ascii码即可。


这个貌似是需要动态调试的静态调试的话函数太多了一点。。等待官方WPing。。
更新:突然会做了。。

说到动态调试,那么把程序載入到OD中

尝试输入123456观察变换过程。F8步进至关键函数

发现在这里将“main”放在了EAX寄存器中

随着步进,发现取出了第一个字母放在cl中取出輸入的123456中的‘1’放在al中。异或得到‘\’替代‘1’。

继续查看发现EAX寄存器中“main”首字母被删除,留下了“ain”再次取出了第一个字母放茬cl中,取出上一部产生的的‘‘\’’放在al中异或得到‘=’,替代‘1’


那么猜测输入的123456每一位都将与main的每一位依次异或。类似于以下过程:

接着步进发现EAX中装入了base64字串,猜测是对变换后的字符串进行了base64编码与装入的base64字串比较。那么逆向后程序应为base64解密后的字符与niam异或,即得flag

题干:如题,下载附件获取flag

直接下载发现文件名为misc.exe于是试着看看十六进制,拿到加密的flag容易看出flag内部内容也为16进制,复制出來在文本区即可拿到flag。(>人<;)

题干:明天就是2019年了

这个题拿到压缩包里的文件,没有扩展名查看十六进制。(**)

发现是ZIP叠加PDF那么先把扩展名改为ZIP,查看Tips.txt拿到提示“明天就是2019年了”。

接下来删掉十六进制中ZIP的数据部分保存文件并将文件扩展名改为pdf。打开发现pdf需要密码才能查看内容结合提示“明天就是2019年了”,猜测密码为输入,发现密码正确


题干:分析数据包获取flag

数据包的题嘛~简单的话導出个对象就好了(想歪的拖出去斩了吧)ε=ε=(怒°Д°)? (没错我就是从上面复制的,你能拿我怎么样(挺))

这次倒是没那么简单了沒有明显分组提示了,但是发现有一个对象长得特别奇怪于是查看分组,果然看到flag


没什么后记好写的。。那就最后强调一下!我嘚队友们是最棒哒~

链接: 密码:ffxk

我要回帖

更多关于 英雄大作战X破解人物 的文章

 

随机推荐