天天看点

xctf攻防世界 MISC薪手进阶区

0x01. this_is_flag

进入环境查看内容,如图:

xctf攻防世界 MISC薪手进阶区

提示flag在描述中,最终答案为:​

​flag{th1s_!s_a_d4m0_4la9}​

0x02. pdf

进入环境,下载附件,给的是一个pdf文件,我们直接打开如图:

xctf攻防世界 MISC薪手进阶区

按照经验,图片要么有内容,要么图片覆盖着什么东西,我们使用Acrobat DC打开,编辑pdf文档,并移除图片,如图:

xctf攻防世界 MISC薪手进阶区

最终的flag为:​

​flag{security_through_obscurity}​

0x03. 如来十三掌

进入环境,下载附件,打开后发现是一段乱七八糟看不懂的佛语:

xctf攻防世界 MISC薪手进阶区

其实就是一堆加密的话,使用在线佛曰加密地址:​​https://www.keyfc.net/bbs/tools/tudoucode.aspx​​,如图:

xctf攻防世界 MISC薪手进阶区

得到了解密信息,还是很乱,想到如来十三掌,想到ROT13,使用在线ROT13小工具进行解密:​​https://www.qqxiuzi.cn/bianma/kaisamima.php​​,如图:

xctf攻防世界 MISC薪手进阶区

还是乱,尝试base64解码:如图:

xctf攻防世界 MISC薪手进阶区

最终答案为:​

​flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}​

0x04. give_you_flag

进入环境,下载附件,发现是一个gif图片,猜测需要提取帧,果断将图片放入Photoshop,如图:

发现第50帧有一张二维码,但是缺少定位符:

xctf攻防世界 MISC薪手进阶区

我们把他p上去,如图:

使用手机扫码二维码后,得到最终的结果为:​

​flag{e7d478cf6b915f50ab1277f78502a2c5}​

0x05. stegano

进入环境,下载附件,如图:

xctf攻防世界 MISC薪手进阶区

猜想可能pdf存在什么东西,使用AcrobatDC进行编辑,删除页面的内容,发现真的有一串字符,如图:

xctf攻防世界 MISC薪手进阶区

发现其中均为AB两种字符,猜测为摩斯电码,使用.代替A,使用-代替B,上代码:

s = 'BABA BBB BA BBA ABA AB B AAB ABAA AB B AA BBB BA AAA BBAABB AABA ABAA AB BBA BBBAAA ABBBB BA AAAB ABBBB AAAAA ABBBB BAAA ABAA AAABB BB AAABB AAAAA AAAAA AAAAB BBA AAABB'
res = s.replace('A', '.').replace('B', '-')
print(res)      

得到莫斯编码如下:

-.-. --- -. --. .-. .- - ..- .-.. .- - .. --- -. ... --..-- ..-. .-.. .- --. ---... .---- -. ...- .---- ..... .---- -... .-.. ...-- -- ...-- ..... ..... ....- --. ...--      

使用在线莫斯电码翻译器​​http://www.all-tool.cn/Tools/morse/?&rand=b6f9a70b7d48e5f823c9b52c7cbb6af5​​,如图:

xctf攻防世界 MISC薪手进阶区

将其解码,按照题目要求转换大小写,最终的flag为:​

​flag{1NV151BL3M3554G3}​

0x06. 坚持60s

进入环境,下载附件,如图,给的一个jar文件,需要电脑提前配置java环境,打开jar文件后,上下左右移动图标:

xctf攻防世界 MISC薪手进阶区

按照做题经验,其实就是需要在jar包中找到flag文件,我们使用vscode,并安装java的反编译软件decompiler,右键项目中的jar,选择decompile,如图:

xctf攻防世界 MISC薪手进阶区

搜索flag,发现内容如图:

xctf攻防世界 MISC薪手进阶区

有等号,估计是base64编码了,我们尝试解码,如图:

xctf攻防世界 MISC薪手进阶区

解码内容为:DajiDali_JinwanChiji

最终答案为:​

​flag{DajiDali_JinwanChiji}​

0x07. gif

进入环境,下载附件,发现题目给出的是一个zip压缩包。打开压缩包观察后,发现只有黑色和白色方块,猜想可能是01编码,因此解题思路是将白色块认为0,黑色块认为1,进行编码。直接上代码:

import os
import PIL.Image as Image

# 对每一张图片进行判断,若为白色则记录为0,若为黑色记录为1
data = ''
filenames = os.listdir(r'C:\Users\Mr.fa\Desktop\gif')
filenames.sort(key=lambda x: int(x.split('.')[0]))  # 防止文件名乱序

for filename in filenames:
    path = os.path.join("C:\\Users\\Mr.fa\\Desktop\\gif\\", filename)
    hands_mask = Image.open(path)
    r, g, b = hands_mask.getextrema()
    # 判断图片的色块
    if r[1] == 255 and g[1] == 255 and b[1] == 255:
        data += '0'
    else:
        data += '1'
print(data)


# 将0101代码按照八位一组,对应ASCII码表转成对应的字符
for i in range(0, len(data), 8):
    byte = data[i: i + 8]
    print(chr(int(byte, 2)), end='')      

最终答案为:​

​flag{FuN_giF}​

0x08. 掀桌子

进入环境,题目没有给附件,给了一串字符串,想必字符串中蕴含着秘密。而且字符串中的信息范围在0-F之间,也就是16进制的信息,猜测转数据对应ASCII码,但是ASCII码范围在0-128之间,因此尝试减去128,再转成字符得到最终的结果。直接上代码:

strings = "c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2"
flag = ''
# 尝试将字符两个一组,再缩小范围
for i in range(0, len(strings), 2):
    hexdata = '0x' + strings[i] + strings[i + 1]
    flag += chr(int(hexdata, 16) - 128)
print(flag)      

因此最终答案为:​

​hjzcydjzbjdcjkzkcugisdchjyjsbdfr​

0x09. ext3

进入环境,下载附件,题目给出的是一个无后缀文件,题目提示linux的光盘文件,我们在kali系统下进行挂载:

mount      

如果提示权限不够,请使用sudo。进入到/mnt/文件夹下,打开终端,使用命令查找关键词flag:

find | grep 'flag'      

如果提示权限不够,请使用sudo。命令后如图:

xctf攻防世界 MISC薪手进阶区

找到文件后,打开flag,如图:

xctf攻防世界 MISC薪手进阶区

对其进行base64解码,如图:

xctf攻防世界 MISC薪手进阶区

最终答案为:​

​flag{sajbcibzskjjcnbhsbvcjbjszcszbkzj}​

0x10. SimpleRAR

进入环境,下载附件,发现题目只给了一个RAR压缩包文件,打开后报错,且只显示了一个txt文件,双击打开后显示没有flag,如图:

xctf攻防世界 MISC薪手进阶区

提示的错误信息中有某个png图片格式损坏,猜测可能是压缩包文件头校验问题,遂用winhex打开文件,如图:

xctf攻防世界 MISC薪手进阶区

将如图中的​

​A8 3C 7A​

​​ 改为​

​A8 3C 74​

​ 修改完后,双击压缩文件,打开后一切正常,如图:

xctf攻防世界 MISC薪手进阶区

尝试进行解压,使用ps打开文件,提示not a png file,猜测可能是文件尾缀是png,但是头有问题,使用winhex查看如图:

xctf攻防世界 MISC薪手进阶区

发现头是个GIF文件,将文件后缀修改成gif,猜测需要帧分离,因此使用Photoshop进行打开,发现有两个图层:

xctf攻防世界 MISC薪手进阶区

分别对两个图层进行提取,并使用stegsolve进行分析,发现两个图层都是半张二维码,使用Photoshop进行合成,如图:

使用手机扫一下,得到最终的答案:​

​flag{yanji4n_bu_we1shi}​

0x11. base64stego

进入环境,下载附件,题目给出的是一个压缩包,解压发现需要密码,如图:

xctf攻防世界 MISC薪手进阶区

猜测可能是伪加密,使用winhex打开文件,如图:

xctf攻防世界 MISC薪手进阶区

我们直接拖到最后,修改伪加密部分,如图:

xctf攻防世界 MISC薪手进阶区

将09 00 修改为00 00,并保存修改,重新进行解压,发现一切ok啦!!!或者使用小工具​​ZipCenOp.jar​​,使用如下命令修复zip文件。(需要安装java环境)

java -jar ZipCenOp.jar r xxx.zip      

修复完成后,接着打开txt文档,如图:

xctf攻防世界 MISC薪手进阶区

其实就是base64的解码工作而已。接着需要了解一下什么是base64编码,附带自己一篇博客​​Base64编码和解码(手写和调包)​​

在知道了base64的原理后,解题思路如下:

  1. 依次读取每行,从中提取出隐写位。
  1. 如果最后没有‘=’,说明没有隐写位,跳过。
  2. 如果最后是一个‘=’,说明有两位隐写位,将倒数第二个字符转化为对应的二进制索引,然后取后两位。
  3. 如果最后是两个‘=’,说明有四位隐写位,将倒数第三个字符转化为对应的二进制索引,然后取后四位。
  1. 将每行提取出的隐写位依次连接起来,每8位为一组转换为ASCII字符,最后不足8位的丢弃。

    直接上代码:

# base64通过字符定位其编码索引
def base64decode(s):
    table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
    for i in range(len(table)):
        if table[i] == s:
            return i


with open(r'C:\Users\Mr.fa\Desktop\stego.txt', 'r') as file:
    lines = file.readlines()
    flag_bin = ''
    for line in lines:
        line = line.replace('\n', '')
        if line[-1] == '=':
            # 如果是两个等号,说明是倒数第三位是隐写,取倒数第三位编码二进制的后四位
            if line[-2] == '=':
                flag_bin += bin(base64decode(line[-3]))[2:].zfill(4)[-4:]
            # 如果是一个等号,说明是倒数第二位是隐写,取倒数第二位编码二进制的后二位
            else:
                flag_bin += bin(base64decode(line[-2]))[2:].zfill(2)[-2:]

    flag = ''
    # 对隐写的编码进行转码,8位转一个ASCII字符,得到最终答案
    for i in range(0, len(flag_bin), 8):
        flag += chr(int(flag_bin[i: i + 8], 2))
    print(flag)      

最终答案为:​

​flag{Base_sixty_four_point_five}​

0x12. 功夫再高也怕菜刀

进入环境,下载附件,题目给出了一个pcapng文件,直接扔进kali中进行打开,我们搜索字符flag,如图:

xctf攻防世界 MISC薪手进阶区

1150编号的流量包包含txt文件和jpg文件,说明有隐藏文件,我们使用binwalk查看一下,如图:

xctf攻防世界 MISC薪手进阶区

有一个zip压缩包,包含flag.txt文件,我们尝试用foremost分离一下,如图:

xctf攻防世界 MISC薪手进阶区

嗯,果然是有东西的,但是zip解压是需要解压码的,猜测刚才的jpg有内容。。。追踪1150编号的包,右键追踪流->tcp流,如图:

xctf攻防世界 MISC薪手进阶区

我们需要知道一个知识点,jpg格式是以:FFD8FF开头,以FFD9结尾的。所以复制所有内容,用winhex新建一个文件,改名后缀jpg便可得到解压缩密钥的jpg图,如图:

xctf攻防世界 MISC薪手进阶区

使用该密码Th1s_1s_p4sswd_!!!解压压缩包,得到最终的flag如图:

xctf攻防世界 MISC薪手进阶区

继续阅读