2021涅普冬令营_wp_(二)

NepNep Winter-CAMP

1.GIF图片隐写
在这里插入图片描述
提示此文件为gif图片,用010editor打开,发现文件头不对,
在这里插入图片描述
应为47 49 46 38,添加文件头,保存,得到GIF图片,GIF图片中有“password is ·········”格式闪过
在这里插入图片描述
用stegslove工具打开,analyse->frame browser,查看每一帧,frame 3-8:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
字母重叠的图片,再用stegsolve工具单独打开,切换通道查看,
在这里插入图片描述
在这里插入图片描述
得到一些字母和数字:Y2F0Y2hfd GhlX2R5bm FtaWNfZm xhZ19pc19 xdW10ZV9z aW1wbGU=,
观察特点,为base64编码,解码得catch_the_dynamic_flag_is_qumte_simple,则flag为:flag{catch_the_dynamic_flag_is_qumte_simple},提交,发现flag错误,翻译下flag内容,wt?将qumte换成quite。

2.音频频谱隐写
得到一个ohh.wav文件,使用Audacity工具打开,Audacity工具使用
点击倒三角标识,切换频谱图,找到flag
在这里插入图片描述
按住ctrl,滚动鼠标滑轮,放大图片,查看flag:fbctf{This_1s_a_massage}
在这里插入图片描述

3.流量分析(一)
直接查找flag无果,发现这是FTP的流量包,追踪一下tcp流,用户test,密码test
在这里插入图片描述
则flag信息可能存在于ftp传输数据中,搜索ftp-data,追踪一下tcp流,发现曾执行郭过ls命令,flag可能存在于txt或者png文件中
在这里插入图片描述
搜索flag.txt,并逐个追踪tcp流,发现可疑字符串,猜测是base64编码,拿去解码
在这里插入图片描述
假的。。。。。。
在这里插入图片描述
再搜索一下universe.png文件,追踪一下tcp流,
在这里插入图片描述
猜测可能想将flag信息藏在图片中
在这里插入图片描述
发现传输过png文件,复制原始数据,用010editor打开,保存为png文件,
在这里插入图片描述
使用了各种方法,无果,转向流量分析,查找ftp-data,搜索其它可能传输的数据,
在这里插入图片描述
发现又保存了一个png文件,再追踪一下tcp流,得到该文件的原始数据,同上操作,得到一张看上去与前一张没区别的图片,试着使用stegsolve工具
在这里插入图片描述

发现flag:flag{Plate_err_klaus_Mail_Life}

4.zip口令爆破
使用zip口令爆破工具,得到解压密码1658967,得到flag
在这里插入图片描述

5.LSB音频隐写
使用Silenteye 工具,decode,得到flag
在这里插入图片描述

6.音频波形隐写
用Audacity工具打开,发现音频开头又一段可疑的波形图,猜测是高位代表1,低位代表0,然后二进制转ASCII码
在这里插入图片描述
则表示的字符串为:110011011011001100001110011111110111010111011000010101110101010110011011101011101110110111011110011111101
总共是105位,应该是每7位转,
在这里插入图片描述
得到flag

7.pyc反编译

反编译得到 : #python2

#!/usr/bin/env python
# visit http://tool.lu/pyc/ for more information
print 'Your input1 is your flag~'
l = len(input1)
code = []
for i in range(l):
    num = ((ord(input1[i]) + i) % 128 + 128) % 128
    code += chr(num)

for i in range(l - 1):
    code[i] = chr(ord(code[i]) ^ ord(code[i + 1]))

print code
code = [
    '\x0b',
    '\x0e',
    '\t',
    '\x15',
    '0',
    '4',
    '\x01',
    '\x06',
    '\x14',
    '4',
    ',',
    '\x1b',
    'U',
    '?',
    'o',
    '6',
    '*',
    ':',
    '\x01',
    'D',
    ';',
    '%',
    '\x13']

re得

code = [
    '\x1f',
    '\x12',
    '\x1d',
    '(',
    '0',
    '4',
    '\x01',
    '\x06',
    '\x14',
    '4',
    ',',
    '\x1b',
    'U',
    '?',
    'o',
    '6',
    '*',
    ':',
    '\x01',
    'D',
    ';',
    '%',
    '\x13']
flag = ''
for i in range(len(code) - 2,-1,-1):
    code[i] = chr(ord(code[i]) ^ ord(code[i + 1]))
for i in range(len(code)):
    code[i] = chr((ord(code[i])-i)%128)
    flag+=code[i]
print flag

运行得flag
在这里插入图片描述
提交,flag错误,wt?多次尝试,将GWHT换成flag即可
8.MP3 隐写
附件无法播放,用010打开,
在这里插入图片描述
发现是jpg文件头,修改扩展名,得到一张图片
在这里插入图片描述
并且在末尾发现藏有zip文件,复制到kali,使用binwalk命令,得到一个加密的压缩包
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

然后根据图片提示使用Mp3stego工具,下载,用法见该工具文件中的readme.txt,
将得到的图片放入Decode.exe所在的文件夹中,当前目录输入cmd回车,输入命令
谷歌翻译:Gourd Little King Kong,没用。。。。
在网上查了查,试了一下,发现是Gourd Small Diamond
在这里插入图片描述
解压密码
在这里插入图片描述
解压,得到flag
在这里插入图片描述
输入flag,提示错误,经过多次尝试,wt?,梅开二度。。。flag为flag{MSTSEC_DINGANN_KEY_IS_GSD}

9.Affine_task
附件py:

from string import digits, ascii_lowercase
from secret import numbers, A, B

assert min([i in digits for i in numbers])

flag = "flag{"+"".join([ascii_lowercase[int(i)] for i in numbers])+"}"

assert numbers == "".join([str(ascii_lowercase.find(i)) for i in flag[5:-1]])
Ciphertext = ""
for i in flag:
    if i not in ascii_lowercase:
        Ciphertext += i
    else:
        Ciphertext += ascii_lowercase[(ascii_lowercase.find(i)*A+B) % 26]
print("Ciphertext =", Ciphertext)
# Ciphertext = vjsg{dckvzksr}

exp:

from Crypto.Util.number import *
from string import ascii_lowercase
table = ascii_lowercase
Ciphertext = "vjsg{dckvzksr}"
MOD = len(table)


def crack():
    for a in range(MOD):
        for b in range(MOD):
            if (a*table.find("f")+b) % MOD == table.find(Ciphertext[0]):
                if (a*table.find("l")+b) % MOD == table.find(Ciphertext[1]):
                    if (a*table.find("a")+b) % MOD == table.find(Ciphertext[2]):
                        if (a*table.find("g")+b) % MOD == table.find(Ciphertext[3]):
                            print("a, b = {}, {}".format(a, b))
                            return (a, b)


flag = ""
A, B = crack()
for i in Ciphertext:
    if i not in table:
        flag += i
    else:
        flag += table[inverse(A, MOD)*(table.find(i)-B) % MOD]
print(flag)
print("".join([str(ascii_lowercase.find(i)) for i in flag[5:-1]]))

10.明文攻击
附件为一个zip压缩包,里面是加密的两个文件,flag.doc和readme.txt
明文攻击介绍
在这里插入图片描述
根据提示,再创建一个readme.txt文件,将提示内容粘贴保存,保证加密的和创建的readme.txt文件的CRC32值和文件大小相同,然后以zip压缩
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

然后使用ARCHPR工具进行明文攻击,

在这里插入图片描述
点击开始,等待。。。。。。
在这里插入图片描述

点击下方保存,得到一个zip3_decrypted.zip文件,里面即是已解密的文件,
打开flag.doc,是小说片段,其中藏在flag
在这里插入图片描述

11.python脚本使用(一)
附件为一张图片,名为misc.jpg
在这里插入图片描述
根据提示,应该是用python脚本解决图片隐写

使用binwalk命令分析一下,发现zlib压缩
在这里插入图片描述
并在生成的extracted文件夹中发现一堆总共625位二进制字符串,emm…25*25=625,
在这里插入图片描述
将这些二进制字符串使用python脚本转图片

from PIL import Image
MAX = 25
pic = Image.new("RGB",(MAX, MAX))
str = "得到的二进制数字"
i=0
for y in range (0,MAX):
    for x in range (0,MAX):
        if(str[i] == '1'):
            pic.putpixel([x,y],(0, 0, 0))
        else:
            pic.putpixel([x,y],(255,255,255))
        i = i+1
pic.show()
pic.save("flag.png")

得到一张二维码,解码得flag
在这里插入图片描述
或者用010找到zlib压缩部分,文件头78 9C
在这里插入图片描述
使用zlib解压脚本:

import zlib
s = '''
78 9C 5D 91 01 12 80 40 08 02 BF 04 FF FF 5C 75
29 4B 55 37 73 8A 21 A2 7D 1E 49 CF D1 7D B3 93
7A 92 E7 E6 03 88 0A 6D 48 51 00 90 1F B0 41 01
53 35 0D E8 31 12 EA 2D 51 C5 4C E2 E5 85 B1 5A
2F C7 8E 88 72 F5 1C 6F C1 88 18 82 F9 3D 37 2D
EF 78 E6 65 B0 C3 6C 52 96 22 A0 A4 55 88 13 88
33 A1 70 A2 07 1D DC D1 82 19 DB 8C 0D 46 5D 8B
69 89 71 96 45 ED 9C 11 C3 6A E3 AB DA EF CF C0
AC F0 23 E7 7C 17 C7 89 76 67 D9 CF A5 A8 00 00
00 00 49 45 4E 44 AE 42 60 82

'''
s = s.replace(' ','').replace('\n','')
b = bytes.fromhex(s)
flag = zlib.decompress(b)
print(flag)

同样得到一堆二进制字符串

12.数字水印隐写

用010打开,点击模板尾,发现还藏有无文件头的png文件
在这里插入图片描述
可以直接用010新建文件,将隐藏的png文件数据复制到新建文件中,并添加上png文件头,89 50 4E 47 0D 0A 1A 0A 00 00 00 0D,保存
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
得到一张与原图一样的图片,猜测是双图隐写

使用BlindWaterMark工具,将两张图片复制到该工具下,并在当前目录cmd回车,输入命令python3 bwmforpy3.py decode half.png 123.png 333.png,然后什么事也没发生,不知道是什么原因,难道是python库的版本不对????
在这里插入图片描述
无果。。。。
这题解题思路可参见南京大学:数字水印隐写writeup

13.流量分析(二)-hard?????

14.流量分析(三)?????

15.内存取证(一)

解题思路见内存取证

16.python脚本使用(二)?????

17.流量分析-hard???????

18.内存取证(二)????????

猜你喜欢

转载自blog.csdn.net/Nebula1805/article/details/113943879