【BugkuCTF】杂项(持续更新…)

0x01:这是一张单纯的图片

将图片下载到本地,打开(原图是直接上传不了的,即使上传了也看不了的 )。

【BugkuCTF】杂项(持续更新…)_第1张图片
放到 Bless 里分析,发现图片末尾隐写了一段 Unicode 编码。

【BugkuCTF】杂项(持续更新…)_第2张图片

用解码工具对其解码,得到 FLAG 为

key{you are right}

0x02:隐写

首先将 rar 文件下载到本地,解压得到 2.png,在 Linux 下打不开,而在 Windows 下却可以正常浏览。
提示信息给的很足:文件头数据块(IHDR)损坏了。

【BugkuCTF】杂项(持续更新…)_第3张图片
【BugkuCTF】杂项(持续更新…)_第4张图片
用 pngcheck 检查一下,得到以下信息(在文章开头的错误回显已经给出)

z@ubuntu:~/Downloads$ pngcheck 2.png 

【BugkuCTF】杂项(持续更新…)_第5张图片

file 命令查看文件格式(后缀名不一定正确),确实是 PNG 格式文件。

z@ubuntu:~/Downloads$ file 2.png 
2.png: PNG image data, 500 x 420, 8-bit/color RGBA, non-interlaced
z@ubuntu:~/Downloads$ 

在 Windows 下用 WInHex 查看二进制编码,在十六进制表示中,上图每两个数字表示一个字节。

【BugkuCTF】杂项(持续更新…)_第6张图片
PNG 文件头数据块知识补充

  • (固定)八个字节 89 50 4E 47 0D 0A 1A 0A 为 PNG 的文件头,说明这是一个 PNG 文件
  • (固定)四个字节00 00 00 0D(即为十进制的 13)代表数据块的长度为 13
  • (固定)四个字节49 48 44 52(即为 ASCII 码的 IHDR)是文件头数据块的标示(IDCH)
  • (可变)13 位数据块(IHDR)
    • 前四个字节代表该图片的宽
    • 后四个字节代表该图片的高
    • 后五个字节依次为:Bit depth、ColorType、Compression method、Filter method、Interlace method
  • (可变)剩余四字节为该 PNG 的 CRC 检验码,由从 IDCH 到 IHDR 的十七位字节进行 CRC 计算得到。

需要通过在十六进制编辑器中修改宽和高的值,达到修复 CRC Error 的效果。
我们规定 crc32key 为该 PNG 文件的 CRC 验证码,它是由从 IDCH 到 IHDR 的十七位字节进行 CRC 计算得到的。不妨写一个 Python 脚本,进行上述计算得到的结果记为 crc32result,如果

crc32result == crc32key

则表明此时的长宽比符合题意,图片修复完毕。具体思路见:https://www.jianshu.com/p/0b5d14657d2e (用它的例子并没有成功)。CRC 函数(crc32)导入 zlib 库可以得到。

【BugkuCTF】杂项(持续更新…)_第7张图片

0x03:猜

【BugkuCTF】杂项(持续更新…)_第8张图片
太简单,直接百度搜图解决。

【BugkuCTF】杂项(持续更新…)_第9张图片
不得不说,这方面百度是老司机,谷歌只能屈居第二。

【BugkuCTF】杂项(持续更新…)_第10张图片
【BugkuCTF】杂项(持续更新…)_第11张图片
【BugkuCTF】杂项(持续更新…)_第12张图片

0x04:Telnet

将 zip 文件解压后是一个后缀名 pcap 的流量包,放到 WireShark 中进一步分析。

右键,依次选择 Follow -> TCP Stream,发现 FLAG。

【BugkuCTF】杂项(持续更新…)_第13张图片

0x05:眼见非实

解压 zip 文件,得到一个看上去是 doc 文件的东西

在这里插入图片描述
用 binwalk 检查发现其实是一个 zip 文件,遂以 foremost 进行拆分

z@ubuntu:~/Downloads$ binwalk '/home/z/Downloads/ÑÛ¼û·Çʵ.docx'
z@ubuntu:~/Downloads$ foremost '/home/z/Downloads/ÑÛ¼û·Çʵ.docx' 

【BugkuCTF】杂项(持续更新…)_第14张图片又得到一个 zip 文件 ,进行解压,在 word 文件夹的 document.xml 中找到 FLAG

【BugkuCTF】杂项(持续更新…)_第15张图片

0x06:啊哒

这次给出的是一个表情包

【BugkuCTF】杂项(持续更新…)_第16张图片使用 binwalk 发现该图片实际上是一个图种(内涵图),包含了一段 zip 文件的信息。

【BugkuCTF】杂项(持续更新…)_第17张图片zip 文件的密码就是表情包图片属性中的对应的照相机型号(完全不知道这有什么意义),将十六进制解码后的字符串作为秘钥,获得 FLAG。

【BugkuCTF】杂项(持续更新…)_第18张图片

在这里插入图片描述

0x07:又一张图片,还单纯吗

【BugkuCTF】杂项(持续更新…)_第19张图片
用 binwalk 确认此图为图种,遂 foremost 分离之。

【BugkuCTF】杂项(持续更新…)_第20张图片【BugkuCTF】杂项(持续更新…)_第21张图片

0x08:宽带信息泄露

查看路由器配置文件,需要用到 Windows 下的RouterPassViewer,
根据提示在配置文件中查找用户名即可。

【BugkuCTF】杂项(持续更新…)_第22张图片【BugkuCTF】杂项(持续更新…)_第23张图片【BugkuCTF】杂项(持续更新…)_第24张图片

0x09:隐写贰

【BugkuCTF】杂项(持续更新…)_第25张图片
这是一个图种,老司机都懂。直接用 foremost 让它质壁分离。

【BugkuCTF】杂项(持续更新…)_第26张图片
分离出来,给出提示。

【BugkuCTF】杂项(持续更新…)_第27张图片
改后缀的老套路,这其实是一个伪装为 rar 的 zip 文件。还原后缀名并解压之。

【BugkuCTF】杂项(持续更新…)_第28张图片

根据提示,密码是871。

【BugkuCTF】杂项(持续更新…)_第29张图片【BugkuCTF】杂项(持续更新…)_第30张图片
将上面的图种放到 Bless 中分析

【BugkuCTF】杂项(持续更新…)_第31张图片
根据形式猜测是 base64 编码(花括号内部分),解码后得到 FLAG

【BugkuCTF】杂项(持续更新…)_第32张图片

 f1@g{y0u Are a h@cker!}
  1. 其实上面 base64 编码部分直接 cat 命令也就出来了。

【BugkuCTF】杂项(持续更新…)_第33张图片2. 对于 zip 密码,严谨的做法是自己写个字典生成器生成字典(如果没有的话),然后用 fcrackzip 结合密码字典进行破解。

# 一个超简陋的黑客字典生成器

import string
s = string.digits
f = open('evil.txt', 'w')
for i in s:
    for  j in s:
        for k in s:
            f.write(i+j+k+'\n')
f.close()

0x10:多种方法解决

file 命令发现这是一个伪装成 exe 的 txt 文件。

cat KEY.exe

【BugkuCTF】杂项(持续更新…)_第34张图片
很明显是 base64 编码,解码后发现是一张QRcode(二维码),扫得 FLAG。

【BugkuCTF】杂项(持续更新…)_第35张图片

KEY{dca57f966e4e4e31fd5b15417da63269}

0x11:闪的好快

使用图片通道查看器 Stegsolve,Analyse -> Frame Browser。

【BugkuCTF】杂项(持续更新…)_第36张图片

【BugkuCTF】杂项(持续更新…)_第37张图片

最后扫出来

SYC{F1aSh_so_f4sT}

0x12:come_game

听说游戏通关就有 FLAG。。

【BugkuCTF】杂项(持续更新…)_第38张图片【BugkuCTF】杂项(持续更新…)_第39张图片玩到第二关就不想玩了,看到每一关结束都会在 save1 文件写一条记录。

【BugkuCTF】杂项(持续更新…)_第40张图片
将 2 修改成 5 即可。

【BugkuCTF】杂项(持续更新…)_第41张图片

SYC{6E23F259D98DF153}

0x13:白哥的鸽子

咕咕咕,,,

【BugkuCTF】杂项(持续更新…)_第42张图片
file 命令发现它实际上是jpeg文件,存储了exif信息。

在这里插入图片描述
尝试 cat 直接查看图片,末尾出现的字符串符合两点规律:

  • 字符串长度短小,不超过 30 个字符
  • 出现 f、l、a、g 等字符(flag)

【BugkuCTF】杂项(持续更新…)_第43张图片
我们猜测这是一个栅栏密码(类似于藏头诗,具体见百度百科),用下面的代码进行破解。

# 3个字符一组,一共24个字符,总共8组
str = "fg2ivyo}l{2s3_o@aw__rcl@"
flag = ""
for i in range(0, int(len(str)/3), 1):
    flag += str[i]
    flag += str[i + 8]
    flag += str[i + 16]
print(flag)

得到

flag{w22_is_v3ry_cool}@@

上面的代码假定每 3 个分为一组,如果严谨写,应该再在外面包裹一个外循环(这里既然已经得到 FLAG,就不写了)。

# 3个字符一组,一共24个字符,总共8组
str = "fg2ivyo}l{2s3_o@aw__rcl@"
flag = ""
for j in range(0, int(len(str)/i), 1):
    flag += str[j]
    flag += str[j + 8]
    flag += str[j + 16]
print(flag)

这是我用严谨方法得到的结果,经过分析选出符合逻辑的那个即为 FlAG

【BugkuCTF】杂项(持续更新…)_第44张图片

图省事的话,可以访问:https://www.qqxiuzi.cn/bianma/zhalanmima.php ,
在线破解栅栏密码的网站。

【BugkuCTF】杂项(持续更新…)_第45张图片

0x14:Linux

本题考查 Linux 基础,做不好的说不过去了。

在这里插入图片描述直接 cat 命令,找到 FLAG

【BugkuCTF】杂项(持续更新…)_第46张图片

key{feb81d3834e2423c9903f4755464060b}

0x15:隐写叁

大白的图片,在 Windows 下可以打开,而 在 Linux 下根本打不开。

【BugkuCTF】杂项(持续更新…)_第47张图片
应该是 PNG 图片的文件头数据块出了问题,丢进 Bless一探究竟。

【BugkuCTF】杂项(持续更新…)_第48张图片
图像的高度信息被篡改,将代表高度的 00 00 01 00 改为 00 00 02 A7

【BugkuCTF】杂项(持续更新…)_第49张图片

0x16:做个游戏(08067CTF)

【BugkuCTF】杂项(持续更新…)_第50张图片
放到 Luyten 反编译,在某个 Frame 类中找到 FLAG(base64 编码)

【BugkuCTF】杂项(持续更新…)_第51张图片
解码后得到 FLAG

flag{DajiDali_JinwanChiji}

0x17:想蹭网先解开密码

已知信息有两条,即 cap 抓包和密码的前 7 位数。先用 crunch 生成 11 位密码。

crunch 11 11 -t 1391040%%%% -o pass.txt

【BugkuCTF】杂项(持续更新…)_第52张图片

使用 Aircrack-ng 进行无线密码破解。

aircrack-ng -a2 -w pass.txt wifi.cap

【BugkuCTF】杂项(持续更新…)_第53张图片
【BugkuCTF】杂项(持续更新…)_第54张图片

flag{13910407686}

0x18:Linux2

解压出来是一个 Linux 系统文件,直接用 grep 命令进行搜索即可。

【BugkuCTF】杂项(持续更新…)_第55张图片
还有更好的方法,使用 strings 命令加管道。直接得到 FLAG。

【BugkuCTF】杂项(持续更新…)_第56张图片

你可能感兴趣的:(CTF)