GKCTF2021部分wp

misc

签到

流量分析题
打开之后发现是http流量,则tcp.stream eq x,查看每次传输,然后追踪http流查看传输的内容,在tcp.stream eq 5找到cat flag相关信息,常规思路是16进制转字符串,base64解码,此题通过分析几个流量包发现存在数据倒转,于是16进制转字符串+base64+倒转
GKCTF2021部分wp_第1张图片
cyberchef打开,解密数据
GKCTF2021部分wp_第2张图片
flag存在双写,整理一下
flag{Welc0me_GkC4F_m1siCCCCCC!}
基础笔记(三):网络协议之Tcp、Http

你知道apng吗

APANG本质是一张动图,先apngdis_gui分解一下,找到四张带有二维码的图片,一张斜的离谱(GIMP透视拉一个脚),有一张浅的离谱(QR_Research识别),其余两张还可
GKCTF2021部分wp_第3张图片
GKCTF2021部分wp_第4张图片
四个拼接成flag
flag{a3c7e4e5-9b9d-ad20-0327-288a235370ea}

FireFox Forensics

firefox密码取证
https://github.com/lclevy/firepwd 脚本一把梭
python3 firepwd.py -d ./FireFox_ForensicsFireFox Forensics
GKCTF{9cf21dda-34be-4f6c-a629-9c4647981ad7}

excel 骚操作

随便点了点发现有的块有1,于是条件格式将等于1的地方设成黑色,出来一张类似二维码的区域,其实是汉信码,需要下载中国编码app扫描,小坑是调整excel列宽=行宽,两者单位不一样,但根本还是调整像素
GKCTF2021部分wp_第5张图片
flag{9ee0cb62-f443-4a72-e9a3-43c0b910757e}

银杏岛の奇妙冒险

直接在游戏文件夹搜json文件,挨个翻,在2.json 3.json 4.json 5.json的文件找到flag,拼在一起
GKCTF2021部分wp_第6张图片
GKCTF2021部分wp_第7张图片
GKCTF2021部分wp_第8张图片2
flag{w31c0me_t0_9kctf_2021_Check_1n}

0.03

VeraCrypt挂载文件,输入secret.txt里的密码,解密出来的文件说flag不在这里,密码错误,alternatestreamview扫描文件夹查看数据流或者360压缩直接打开,都可以找到secret.txt_whatyoumaywant,打开,结合之前secret文件里的内容分析是3个为1组定位密码
311 223 313 313 112 122 312 312 313 311
两种情况
1.
GKCTF2021部分wp_第9张图片
EBCCAFDDCE
2.
GKCTF2021部分wp_第10张图片
UBMMASJJMU
第一个密码正确,输入获取flag
flag{85ec0e23-ebbe-4fa7-9c8c-e8b743d0d85c}
VeraCrypt的使用:
[Windows] VeraCrypt磁盘加密工具

web

ezcms

蝉知7.7公开的cms
后台路径 /admin.php,弱密码admin/12345登录,编辑模板,但是提示校验一个文件的存在,开始找上传点,将文件上传到指定位置。直接上传到指定位置不现实,想着先上传上去,然后移动到指定目录,设计-组件-素材库,上传文件后,点编辑存在路径穿越,然后在模板里写命令{},在首页输出flag
flag{f913907d-1807-4529-b793-e77befb4d0f6}

Crypto

Random

flag是上述随机数生成后再生成一个32位(以位为单位)的随机数

from hashlib import md5
from randcrack import c
def foo(l,i):
    a=[]       #32 64 96
    a.append(l[i]) #32位
    b1=l[i+1]>>32
    b2=l[i+1]&(2**32-1)
    a.append(b2)#64位的低32位
    a.append(b1)#64位的高32位
    b1=l[i+2]>>64
    b2=(l[i+2]&(2**64-1))>>32
    b3=l[i+2]&(2**32-1)
    a.append(b3)#96位的低32位
    a.append(b2)#96位的中32位
    a.append(b1)#96位的高32位
    return a
with open(r'./random.txt','r') as f:
    l=f.readlines()
l=[int(i.strip()) for i in l]
ll=[]
for i in range(0,len(l),3):
    ll+=foo(l,i)
rc=RandCrack()
for i in ll:
    rc.submit(i)
aa=rc.predict_getrandbits(32)
print('flag{%s}'%md5(str(aa).encode()).hexdigest())

#每624个32位数字给生成器喂食,题目正好给了这么多,(32+64+96)*104=624*32

Re

QQQQT

给的码表长度58,直接想到base58,和标准的码表对照一下,发现没变,直接解密,在输入验证一下,通过
flag{12t4tww3r5e77}

你可能感兴趣的:(CTF)