BUUCTF-Misc(111-120)

[UTCTF2020]File Carving

010editor打开发现了一个压缩包

解压出来一个ELF文件

我们拖到虚拟机去运行一下吧

得到flag

flag{2fbe9adc2ad89c71da48cabe90a121c0}

二维码

参考:

BUUCTF:二维码 - B0mbax - 博客园 (cnblogs.com)

ps修复一下,我也不会,用的大佬的

flag{7bf116c8ec2545708781fd4a0dda44e5}

[watevrCTF 2019]Evil Cuteness

010editor打开,文章末尾有压缩包

binwalk提取,解压一下就得到flag

派大星的烦恼

参考:

BUUCTF 派大星的烦恼 - Harmonica11 - 博客园 (cnblogs.com)

BUUCTF:派大星的烦恼-CSDN博客

010editor打开这图片,发现一大串"以及D

接下来编写脚本给他们转成二进制,刚好256个,256/8=32

import os
file = r'E:/Download'
os.chdir(file)
w=open('3.txt','w')
with open('1.txt') as f:
    for i in f.read():
        x = ''
        if i=='\"':
            x='0'
        elif i=='D':
            x='1'
        w.write(x)
w.close()
0110110000101100000011000110110010011100101011000000110010000110101011000010110010001100000111000010110001000110001001101010110001100110101001100110110001000110011011001010011010101100010001100010110011000110101001100010110011001100000111001100110001001100

然后二进制转一下字符

失败了,一堆稀奇古怪的字符

然后这里推测应该是每八位二进制逆序了,所以我们需要反逆回来

import os
file = r'E:/Download'
os.chdir(file)
result=[]
flag=''
with open('3.txt') as f:
    s=f.read()
    for i in range(0,len(s),8):
        str =s[i:i+8]
        str=str[::-1]
        result.append(str)
    flag=''.join(result)

print(flag)
0011011000110100001100000011011000111001001101010011000001100001001101010011010000110001001110000011010001100010011001000011010101100110011001010011011001100010001101100110010100110101011000100011010001100011011001010011010000110011001110000011001100110010

最后得到flag

flag{6406950a54184bd5fe6b6e5b4ce43832}

[QCTF2018]X-man-A face

打开是一个空缺的二维码图片,搜索了解得知缺少了定位角

我们ps给他补全

然后扫描一下

KFBVIRT3KBZGK5DUPFPVG2LTORSXEX2XNBXV6QTVPFZV6TLFL5GG6YTTORSXE7I=

随波逐流解密一下,base32 解密

[INSHack2017]sanity

打开就有flag

key不在这里

参考:

buuctf MISC - key不在这里_buuctf key不在这里-CSDN博客

打开就是一个二维码

得到一个网址

访问了一下,是直接搜wp的,哈哈哈哈哈哈哈

然后发现这一串可疑的字符

10210897103375566531005253102975053545155505050521025256555254995410298561015151985150375568

然后可能是转ascii码,用一下师傅的脚本吧

def extract_numbers(input_string):
    # 初始化指针
    pointer = 0
    result = []

    while pointer < len(input_string):
        # 如果开头是1,向后取3位
        if input_string[pointer] == '1':
            extracted_number = input_string[pointer:pointer + 3]
            pointer += 3
        else:
            # 否则向后取2位
            extracted_number = input_string[pointer:pointer + 2]
            pointer += 2

        # 将提取的数字添加到结果列表中
        result.append(int(extracted_number))

    return result


input_string = '10210897103375566531005253102975053545155505050521025256555254995410298561015151985150375568'
numbers = extract_numbers(input_string)
flag = ''
for i in numbers:
    flag += chr(i)
flag = flag.replace('%7B', '{')
flag = flag.replace('%7D', '}')
print(flag)

[MRCTF2020]不眠之夜

参考:

[BUUCTF:MRCTF2020]不眠之夜_buuctf 不眠之夜-CSDN博客

拼图,一共120张,应该就是10*12,也就是2000*1200

我们先拼接起来,我用的是imagemagic

magick.exe montage ./1/*.jpg -tile 10x12 -geometry +0+0 flag.jpg

得到一个拼接好的图

然后使用gaps拼接

gaps run ./flag.jpg new.jpg --generations=120 --population=120 --size=100

flag{Why_4re_U_5o_ShuL1an??}

粽子的来历

参考:BUUCTF:粽子的来历 - B0mbax - 博客园 (cnblogs.com)

是四个word,但是都破损了,打不开

010editor打开这些文件,发现

把他们都改成FF,也就是ÿ

修复好打开是这个,然后注意到他的行之间的间距不一样

然后就把大间距当成1,小间距成0(反正我觉得不太好看出来的,我太笨了)

100100100001

然后题目提示了32位,拿去md5加密

hashcat

得到一张无后缀的图片,我们丢入伟大的B神开发的PuzzleSolver免费版

那我们就改成ppt(经测试doc是不行的)

改完之后,他要我密码

这边我是用hashcat(感谢好群友的帮忙)

hashcat.exe -m 9500 hash.txt -a 3 ?d?d?d?d -o out.txt --show

得到密码就是9919

打开文件,倒数第二张ppt选中,标红

热门相关:佣兵的战争   欧神   林家有女异世归   我的极品美女总裁   重生后我成了权臣的掌中娇