NepNep Winter-CAMP(Misc合集)
0x00 前言
从易到难的Misc大汇总,包含了很多常见的考点。
0x01 属性.jpg
右键搞定
0x02 string.jpg
应该是考察strings命令,这里直接010打开,搜索Nep。
0x03 grep.jpg
应该是考察strings命令和grep的配合,上面同样的套路再来一遍。
0x04 aaa.gif
明显看到GIF里插入了一张红色的图,Stegsolve逐帧分析。
flag{he11ohongke},但提交错误,有点儿懵。。
多次尝试后发现是flag{hello hongke}
0x05 lsb.jpg
stegslove查看lsb隐写,发现藏有图片,另存一下。
得到一个二维码,扫一下。
0x06 binwalk,foremost,dd.png
从名字可知要用到binwalk,foremost命令
分离出图片
flag{Nepnep}
0x07 上课认真听了吗?
先追踪udp流,得到flag{254}
,再追踪http流。
得到flag{340}
,追踪tcp流,在tcp.stream eq 22
时,得到另一部分flag{26}
。
0x08 pngcheck.png
先用png看一看,检查图片结构是否存在问题,发现在IDAT异常。
用代码解压一下。
import zlib
s = '''
78 9C 4B CB 49 4C AF 4E 4B 36 32 4D 4E 4A 32 4F
B2 30 B5 34 B5 4C 4B 35 30 36 37 B6 30 32 31 4C
B4 34 4B 4A 33 32 4E A9 05 00 E9 E2 0B 5F D0 1C
68
'''
s = s.replace(' ','').replace('\n','')
b = bytes.fromhex(s)
flag = zlib.decompress(b)
print(flag)
flag{fc25cbb7b85959fe03738241a96bf23d}
0x09 westego4.3open (123456).bmp
使用wbs43open工具,输入密码。
得到flag{我跟你讲,这个小甜瓜超甜der~}
0x0A IHDR.png
IHDR块不对劲,CRC校验有问题。
import os
import binascii
import struct
png= open("IHDR.png","rb").read()
for i in range(1024):
data = png[12:20] + struct.pack('>i',i)+png[24:29]
crc32 = binascii.crc32(data) & 0xffffffff
if crc32 == 0x1fcf9e8e:
print (hex(i)[2:])
更改高度为333
又找了半天,结果发现提示说,flag包含nep,结果没想到flag是flag{你发现了nep}
,行吧,俺想复杂了。
0x0B lsb(123456).png
上神器。
发现文件头不对劲,找了下,发现题目可能类似这道题。https://blog.csdn.net/fuzz_nancheng/article/details/53384353,下载cloacked-pixel(Win10系统下无法使用,建议在kail使用)
得到flag{6e9fbfe27c40bbad06db30c42c04c4d6}
0x0C bin.txt
打开是一大片01的二进制字符,通过CyberChef转换。
得到一张图片。
0x0D 我是间谍
这题是间谍软件分析,运行后使用wireshark抓包,发现一条异常udp流。
打开后,显示flag{11973526}
。
0x0E Stegsolve工具使用
上神器,发现二维码。
0x0F 监听消息
追踪Tcp流发现
另存16进制字符,发现是png。
得到半截二维码,改高度。
得到完整的块儿后,贴个定位符。也可在https://merricx.github.io/qrazybox/填充。
0x10 简单流量
hint:关于ssl密钥导入:https://segmentfault.com/a/1190000018746027
按照提示配置环境变量和WireShark,因为pcapng文件名zstuctf,猜测此题flag也是zstuctf,过滤字符串,追踪tls流。
0x11 图片Base64编码
还原得到一张二维码,扫码得到flag。
0x12 Base编码
LJWXQ2C2GN2EGTSIJZWFQ6SGPJMHUTTIMMZWW2DGKE6T2===
经过Base32解码得到ZmxhZ3tCNHNlXzFzXzNhc3khfQ==
,再经过Base64解码得到flag{B4se_1s_3asy!}
0x13 zip伪加密
改9为0,得到flag{zip_is_funny!}
。
0x14 常见文件文件头补齐
PNG文件头89 50 4E 47 0D 0A 1A 0A
,可以观察到,缺少了4个字节,补全。
成功得到。
0x15 Morse编码
..-. .-.. .- --. ----.-- .. .-.. --- ...- . -.-- --- ..- -----.-
转换得到FLAG%u7bILOVEYOU%u7d
,%u7b
就是{
,%u7d
就是}
。flag{ILOVEYOU}
0x16 16进制查看
0x17 二维码条形码
拼接扫码,得到flag{winter_is_coming}
0x18 LSB图片隐写
可以看出藏了个压缩包,另存一下。
直接解压时失败,文件损坏,winrar修复后解压文件,搜索ctf字符。
0x19 电子文档隐写
0x1A HTML实体编码
\u66\u6c\u61\u67\u7b\u57\u33\u6c\u63\u30\u6d\u65\u21\u7d
通过ASCII转成flag{W3lc0me!}
0x1B 键盘密码
ytfvbhn tgbgy hjuygbn yhnmki tgvhn uygbnjm uygbn yhnijm
对照键盘连线areuhack
0x1C Foremost && binwalk使用
使用binwalk和foremost
解压压缩包,得到flag{ff17_is_funny!}
0x1D LSB音频隐写
slienteye解码
0x1E pyc反编译
在线反编译pyc,得到python代码。
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']
编写解码代码
code = ['\x0b', '\x0e', '\t', '\x15', '0', '4', '\x01', '\x06', '\x14', '4', ',', '\x1b', 'U', '?', 'o', '6', '*', ':', '\x01', 'D', ';', '%', '\x13']
l=len(code)
for i in range(l-2,-1,-1):
code[i]=chr(ord(code[i])^ord(code[i+1]))
for i in range(l):
print(chr((ord(code[i])-i)%128),end='')
运行得到结果:flag{Just_Re_1s_Ha66y!}
0x1F zip口令爆破
拿到flag{zip_is_so_easy!}
0x20 明文攻击
构造一个crc32值与压缩后文件大小一致的readme.txt,这里用一位师傅写的脚本,非常好用。
from zlib import crc32
import random
char='0123456789'
def crc32_f(data):
return hex(crc32(data)&0xffffffff)[2:10]
length=input('length:')
crc32_=raw_input('crc32:').lower()
while True:
text=''
for i in range(length):
text+=char[random.randint(0,len(char)-1)]
if crc32_f(text)==crc32_:
raw_input('find it:'+text)
exit
0x21 音频频谱隐写
用Audacity打开,显示频谱图。
0x22 MP3 隐写
爷青回,金刚葫芦娃可还行,文件是MP3,首先想到利用MP3Stege,但没有密码010打开后发现藏有东西,分离出jpg和zip。
压缩包是加密的,根据图片的提示,猜测密码是GourdSmallDiamond
,解密MP3。
成功解开,打开1.mp3.txt,得到解压密码j7v@8@8QUWG0FWU^
得到MSTSEC{MSTSEC_DINGANN_KEY_IS_GSD}
,但通不过,改成flag即可。
0x23 音频波形隐写
用Audacity打开,显示波形图,发现异常,设高点为1,低点为0编码
得:110011011011001100001110011111110111010111011000010101110101010110011011101011101110110111011110011111101
共105位,不能整除8,但能整除7,则以7个为一组分开,并且在最高位补0
得:01100110 01101100 01100001 01100111 01111011 01010111 00110000 01010111 00101010 01100110 01110101 01101110 01101110 01111001 01111101
,转ASCII码得到flag。
0x24 流量分析(一)
直接搜索flag,结果出来一堆假flag,发现使用ftp协议传了两张图片,存一下。
发现第一张图片有缺陷,是第二张的部分,这里直接分析第二张。
多次尝试后发现是LSB隐写。
0x25 GIF图片隐写
补上文件头。
Stegslove打开逐帧查看,发现字符叠加,肉眼难以辨别,有师傅提到用工具Namo_GIF选择每一帧,然后编辑调色板,将第254帧改为同一个颜色,即可看清每一帧的内容,拼接得到Y2F0Y2hfdGhlX2R5bmFtaWNfZmxhZ19pc19xdW10ZV9zaW1wbGU=
。
0x26 数字水印隐写
猜测是盲水印,需要找到另一张图片,pngcheck发现IEND后还有数据。
发现又有IHDRchunck块,导出,补全文件头,得到一张和原图一模一样的图。
运行python bwm.py decode half.png half1.png wm.png
,得到:
只有一半,找前半段。
0x27 python脚本使用(一)
用pngcheck发现高度有问题。
上python脚本爆破高度,得到232
,再用pngcheck,发现异常数据。
|
|
得到一串二进制代码,长度为625,想到画25X25的二维码,扫码得到flag。
|
|
0x28 内存取证
使用volatility,进行镜像分析,知道了系统。详细用法参考:https://www.cnblogs.com/jssi/p/13762308.html
查看进程,发现可疑进程TrueCrypt.exe
dump出来,volatility -f mem.vmem --profile=WinXPSP2x86 memdump -p 2012 -D ./
2012为nc的进程号,./为保存的路径,用010打开文件,搜索ctf{。