[GKCTF 2021]银杏岛の奇妙冒险
怎么可能真的去玩游戏呢,这辈子都不可能的,直接搜flag
image-20210730223748362
image-20210730224353452
右下角拼起来就是flag了
[UTCTF2020]sstv
sstv的意思是慢扫电视,是业余无线电爱好者的一种主要图片传输方法,慢扫描电视通过无线电传输和接收单色或彩色静态图片。曾经被用在航空器上
image-20210730231444996
把音频导入即可
image-20210730231950122
[GWCTF2019]huyao
我以为它是普通的盲水印,后来解了个寂寞发现我太天真了
这里是区域盲水印
image-20210730233446480
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| import cv2 import numpy as np import random import os from argparse import ArgumentParser ALPHA = 5 def build_parser(): parser = ArgumentParser() parser.add_argument('--original', dest='ori', required=True) parser.add_argument('--image', dest='img', required=True) parser.add_argument('--result', dest='res', required=True) parser.add_argument('--alpha', dest='alpha', default=ALPHA) return parser def main(): parser = build_parser() options = parser.parse_args() ori = options.ori img = options.img res = options.res alpha = options.alpha if not os.path.isfile(ori): parser.error("original image %s does not exist." % ori) if not os.path.isfile(img): parser.error("image %s does not exist." % img) decode(ori, img, res, alpha) def decode(ori_path, img_path, res_path, alpha): ori = cv2.imread(ori_path) img = cv2.imread(img_path) ori_f = np.fft.fft2(ori) img_f = np.fft.fft2(img) height, width = ori.shape[0], ori.shape[1] watermark = (ori_f - img_f) / alpha watermark = np.real(watermark) res = np.zeros(watermark.shape) random.seed(height + width) x = range(height / 2) y = range(width) random.shuffle(x) random.shuffle(y) for i in range(height / 2): for j in range(width): res[x[i]][y[j]] = watermark[i][j] cv2.imwrite(res_path, res, [int(cv2.IMWRITE_JPEG_QUALITY), 100]) if __name__ == '__main__': main()
|
参考:https://blog.csdn.net/weixin_45696568/article/details/116421340
[CFI-CTF 2018]webLogon capture
依题意,搜密码
image-20210730235441594
image-20210730235517224
[INSHack2017]sanity
好久没看见这样朴实无华的题目了
image-20210730235710940
[INSHack2019]Sanity
image-20210731000459904
[HDCTF2019]你能发现什么蛛丝马迹吗
img镜像文件,直接拖到volatility里
image-20210801140238342
猜测版本,一个个试过去是Win2003SP1x86
查看进程
image-20210801140526843
发现DumpIt.exe(内存取证工具)
查找cmd使用记录
image-20210801140333006
以dmp的格式存下来
image-20210801141110861
image-20210801141359101
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| 程序和进程:
1、程序:程序是静止的,程序就是磁盘上的一个文件。
2、进程:进程是一个正在执行的程序的实例。
3、进程是动态的。
4、一旦程序被操作系统加载进内存了,那么这程序就成为了进程。
PID和PPID:
1、PID(process ID):
PID是程序被操作系统加载到内存成为进程后动态分配的资源。
每次程序执行的时候,操作系统都会重新加载,PID在每次加载的时候都是不同的。
2、PPID(parent process ID):PPID是程序的父进程号。
3、PID和PPID都是非零的整数。
4、PID是唯一的,一个PID只标识一个进程。
5、一个进程创建的另一个新进程称为子进程。相反地,创建子进程的进程称为父进程。
6、对于一个普通的用户进程,它的父进程就是执行它的哪个Shell,对于Linux而言,Shell就是bash。
7、bash所在的目录:[negivup@localhost bin]$ cd /bin | ls bash
|
所以这里应该存储ppid父进程,即
1 2
| sudo vol.py -f memory.img --profile=Win2003SP1x86 memdump -p 1992 --dump-dir=./
|
这里使不使用sudo,问题不是很大
将dmp文件分离发现
image-20210801142955561
image-20210801143015109
扫码得
1
| jfXvUoypb8p3zvmPks8kJ5Kt0vmEw0xUZyRGOicraY4=
|
image-20210801143040571
aes解密
image-20210801143329297
[INSHack2019]INSAnity
啊这个比赛我????
image-20210731000744806
[INSHack2017]insanity-
image-20210731000932969
[INSHack2018]INSanity
image-20210731001137244
就这???,这几题也真,好真实的签到题
[INSHack2019]gflag
image-20210801143650243
深奥的编程还行
image-20210801143806076
看不懂
来补充一下关于3D打印的知识:https://blog.csdn.net/redsleep/article/details/80885224
把文件gflag后添加后缀.gcode
分享一个在线预览的网站http://gcode.ws/
你就会看见
image-20210801144446269
这什么鬼
image-20210801144519136
把前两个show取消
image-20210801144605974
[MRCTF2020]摇滚DJ(建议大声播放
不会真的有人去大声播放了吧
image-20210801132045179
无线电传输图像
greatescape
tls协议
TLS协议的架构. TLS主要分为两层,底层的是TLS记录协议,主要负责使用对称密码对消息进行加密。. 上层的是TLS握手协议,主要分为握手协议,密码规格变更协议和应用数据协议4个部分。. 握手协议负责在客户端和服务器端商定密码算法和共享密钥,包括证书认证,是4个协议中最最复杂的部分。. 密码规格变更协议负责向通信对象传达变更密码方式的信号. 警告协议负责在发生错误的时候将错误传达给对方. 应用数据协议负责将TLS承载的应用数据传达给通信对象的协议。.
搜个key
image-20210801210840405
尝试在附近eq寻找key
image-20210801210948537
喜提rsa私钥
通过分析流量猜测,这应该在向ftp
服务器传送私钥,我们得到了私钥,就可以解密TLS
报文
1
| 编辑->首选项->Protocols->TLS`,点击`Edit`,然后点击`+`添加`Key File
|
image-20210801212142858
image-20210801212224027
导入成功后追踪tls流
image-20210801212852380
我爱Linux
表面png实则jpg(虽然改了也没什么用,,文件尾才是重头戏
image-20210801230904438
搜了才知道这里是Python Picke序列化内容
需要进行反序列化
1 2 3 4 5 6 7 8 9
| import pickle
fp = open("1.txt","rb+") fw = open('pickle.txt', 'w') a=pickle.load(fp) pickle=str(a) fw.write( pickle ) fw.close() fp.close()
|
image-20210801232657426
收获一堆坐标,数字是在一行中的位置,‘’引起来的是内容,]表示一行结束
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| fw = open("pickle.txt","r") text=fw.read( ) i=0 a=0
while i<len(text)+1: if(text[i]==']'): print('\n') a=0 elif(text[i]=='('): if(text[i+2]==','): b=text[i+1] d=text[i+1] b=int(b)-int(a) c=1 while c<b: print(" ", end="") c += 1 print(text[i+5], end="") a=int(d) else: b=text[i+1]+text[i+2] d=text[i+1]+text[i+2] b=int(b)-int(a) c=1 while c<b: print(" ", end="") c += 1 print(text[i+6], end="") a=int(d)
|
打印出来就行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| m # m mmmm mmmmmm mmmm m #
mm#mm # mmm mmmm # mmm # #
# ## mm # m mmm
# # # # m m# # # #
# mm#mmm #
m
# ## m # #m#m #
# # # # #mmm#m # # #
mmm##m## m m
mmmm # ## ## ## #
# # # # # # # # # # # # # # #
#mm# #mm##mm ##m# mm#mm
mmmm mmmmm # mmm m
#m # mmm# m #
#m m# mm ## #m#m
# # # # # # #
#
|
sl命令需要安装,运行一下会出现小火车
image-20210801234850256