DataconCTF解题:英雄联盟

之前解开了datacon上的ctf夺旗题目:英雄联盟,也是记录一下解题过程,中间有碰壁的情况,急着看答案的直接拉到最下面就行了。

此图片的 alt 属性为空;文件名为 1718824640-1718824627526.png



1、检查附件

将题目附件下载下来后发现是一个flag.zip压缩包,解压后是一张作者的LOL比赛结果截图(顺便一说作者0/14的寒冰还是很喜感的)。

此图片的 alt 属性为空;文件名为 1718814737-1718814730501.png

既然没有别的文件,那么这张图肯定是藏着东西了:图片隐写。先直接用7z打开原来的flag.zip,发现里面果然藏着flag.txt。

试图直接解压,发现要密码,那么难题就在于找到这个解压密码了。

此图片的 alt 属性为空;文件名为 1718814991-1718814985716.png



2、利用kali探测

将png复制到kali linux上,利用自带的binwalk探测一下。

只能看出藏着一个flag.txt文件,从前面两列可以知道它的起始位置和终点位置,那就按照习惯先把它分离出来。可以用dd指令或者foremost,都是能在kali上直接使用的。

此图片的 alt 属性为空;文件名为 1718817204-1718817198377.png

分离出来以后尝试直接打开,乱码且无任何相关信息(白分了)。

此图片的 alt 属性为空;文件名为 1718817236-1718817230661.png



3、WinHex分析png图像结构

上网搜了一下相关方法,然后下载WinHex打开png查看二进制。从文件头开始前8字节数据是PNG文件的标志,后8字节数据是图片前缀IHDR,第二行前8字节数据是宽度和高度的十六位进制,后面还有色深、压缩方式等等,通常来说会查看宽高来判断图片是否隐藏了部分区域,或者在ASCII编码中查看是否有隐藏flag、password等等。

此图片的 alt 属性为空;文件名为 1718818238-1718817561738-1024x505.png

931的十六位进制是3A3,696的十六位进制是2B8,宽高均无误,也就是没有未显示的隐藏区域,同时查找ASCII码也未发现相关信息。那也只能再换种思路了······

此图片的 alt 属性为空;文件名为 1718822959-1718822949580.png



4、ZSTEG还原隐写

尝试了几种方法后,还是把隐写信息找出来了。此时用到了图片隐写信息快速检测工具——zsteg。安装过程中就不详细讲了,git克隆zsteg包,换源下载安装什么的。安装好了用zsteg打开png,瞬间明了。(作者还在吐槽LOL太难了哈哈)



5、伪代码编程跑出FLAG

password有了,直接打开flag.txt。

此图片的 alt 属性为空;文件名为 1718824207-1718824201165.png

一段伪代码,照着写一段python代码把flag跑出来就行了。

此图片的 alt 属性为空;文件名为 1718824321-1718824314937.png

或者直接把伪代码丢给AI,然后用IDLE得出flag:NUAACTF{LolC0d3_1s_fun5y} 。

此图片的 alt 属性为空;文件名为 1718824429-1718824373986.png

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值