CTF-i春秋网鼎杯第二场misc部分writeup

套娃

下载下来是六张图片

CTF-i春秋网鼎杯第二场misc部分writeup-LMLPHP

直接看并没有什么信息

CTF-i春秋网鼎杯第二场misc部分writeup-LMLPHPCTF-i春秋网鼎杯第二场misc部分writeup-LMLPHPCTF-i春秋网鼎杯第二场misc部分writeup-LMLPHPCTF-i春秋网鼎杯第二场misc部分writeup-LMLPHPCTF-i春秋网鼎杯第二场misc部分writeup-LMLPHP

CTF-i春秋网鼎杯第二场misc部分writeup-LMLPHP

一个一个查看属性

CTF-i春秋网鼎杯第二场misc部分writeup-LMLPHP

没有找到有用信息

到winhexv里看一下

CTF-i春秋网鼎杯第二场misc部分writeup-LMLPHP

都是标准的png图片,而且没有flag写入Hex数据

继续扔到kali里用binwalk分析一下

CTF-i春秋网鼎杯第二场misc部分writeup-LMLPHP

图片未嵌入其他文件

直接在kali双击打开png图片,发现可以正常打开(注:被修改过高度的图片无法在kali中直接打开,会显示无法载入图像)

那继续分析IDAT块,IDAT是png图片中储存图像像数数据的块,不清楚的可以去补充一下关于png图片格式知识

我们使用pngcheck分析图片的IDAT块

CTF-i春秋网鼎杯第二场misc部分writeup-LMLPHP

CTF-i春秋网鼎杯第二场misc部分writeup-LMLPHP

CTF-i春秋网鼎杯第二场misc部分writeup-LMLPHP

1-5图片正常,但是6图片的块没有到32768就满了,猜测6图片可能有问题,划重点

上Stegsolve重点分析6.png

CTF-i春秋网鼎杯第二场misc部分writeup-LMLPHP

先向后翻几页,看看是不是直接可以得到信息

CTF-i春秋网鼎杯第二场misc部分writeup-LMLPHP

找到头也没找见什么东西,也不存在上一场的0通道lsb隐写,好吧,继续查看通道信息

CTF-i春秋网鼎杯第二场misc部分writeup-LMLPHP

勾选Red、Green、Bile的0通道,Order settings栏勾选LSB First  BGR,点击Preview如下所示

CTF-i春秋网鼎杯第二场misc部分writeup-LMLPHP

把滑动栏移到顶端,好吧,flag在playload中...(ps:当初确实做到这一步了,但是因为默认是跳到最后的,没往上找,痛苦...所以还是要细心)

CTF-i春秋网鼎杯第二场misc部分writeup-LMLPHP

神奇的二叉树

下载到题目后有两个文件,一个是文本文档一个是图片,既然给了文本文档那就看看吧

CTF-i春秋网鼎杯第二场misc部分writeup-LMLPHP

CTF-i春秋网鼎杯第二场misc部分writeup-LMLPHP

README.txt内容如下

CTF-i春秋网鼎杯第二场misc部分writeup-LMLPHP

MS7ov5nmmK/kuIDmo7XnuqLpu5HmoJEKMi7moJHku44xLTU55LiK55qE5p6c5a2Q5L6d5qyh5Li6IGVrYH4zYzpnZjAxN2I3NDQvYjM4ZmR+YWJtN2c1NDg5ZTJ7bGY2ejhkMTZoYWVgOTh9YnwtMjFtLmU6CjMu5L6d5qyh5LuO5qCR5LiK5Y+W6LWw56ysIDE4LDM1LDUzLDUwLDE0LDI4LDE5LDYsNTQsMzYg5Liq5p6c5a2QLOi/h+eoi+S4reS/neaMgee6oum7keagkeaAp+i0qOS4jeWPmAo0LnRtcGZsYWfkuLrnrKwgOCw1Niw0NywzNyw1MiwzNCwxNyw4LDgsMjksNyw0Nyw0MCw1Nyw0NiwyNCwzNCwzNCw1NywyOSwyMiw1LDE2LDU3LDI0LDI5LDgsMTIsNTcsMTIsMTIsMjEsMzMsMzQsNTUsNTEsMjIsNDUsMzQsMzEsMSwyMyDkuKrmnpzlrZAKNS5mbGFn5Li6IHRtcGZsYWcg57qi6Imy5p6c5a2QIEFTQ0lJICsxICwg6buR6Imy5p6c5a2QIEFTQ0lJLTEKNi7orqnmiJHku6zmhInlv6vnmoTlvIDlp4vojrflj5ZmbGFn5ZCn

看样子应该是base64加密,拿去解密一下

CTF-i春秋网鼎杯第二场misc部分writeup-LMLPHP

  好的,规则出来了,按照规则有共59个红色和黑色的球,1号到59号各代表一个字母或符号,需要拿掉题目中提到的10个球后依然保持红黑树的性质,然后在保证这个性质的同时比对剩下的球和字符,按照红色ASCll+1和黑色ASCll-1的规则确认最终的flag。

  好吧,那么什么是红黑树呢,红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。

它的性质如下:

  • 性质1. 节点是红色或黑色。
  • 性质2. 根节点是黑色。
  • 性质3 每个叶节点(NIL节点,空节点)是黑色的。
  • 性质4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
  • 性质5. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。

  有了性质就好说了,但是并不推荐手动画图,因为红黑树非是唯一解,所以最好利用网站:https://sandbox.runjs.cn/show/2nngvn8w在线生成红黑树。

  按层添加节点,生成树后,按顺序删除节点,发现不止一个解,排序头5个字母应为flag{,最后一个应为},得出8,56,47,37,52,23应为黑,黑,红,红,黑,黑
选择一个符合条件的红黑树,输出结果。

得到flag为

flag{10ff49a7_db11_4e43_b4f6_66ef12ceb19d}

原创文章,转载请标明出处:https://www.cnblogs.com/pureqh

05-08 08:29