>> ") shares = [] for i in range(0x40): p.sendline(str(i)) data = p.recvuntil(">>> ").replace(" ", "").replace("\n", "").replace(">>>", "") shares.append((bytes_to_long((str(i)).encode()), int(data))) print(long_to_bytes(recover_secret(shares)))Really Smart Acronym
给了加密的源码,及 nc 域名 端口 ,这题是LSB Oracle Attack
从源码可以看到是 RSA,并且已知密文,输入明文对应的密文,输入密文对应的二进制明文最后一位
print("Flag:", pow(bytes_to_long(flag), key.e, key.n))print(pow(m, key.e, key.n)) print(bin(pow(c, key.d, key.n))[-1])
这里使用的是 pycrypto 库,一般它生成的 e 为 65537
在 python 中有一个特性,-1 % x = x-1 这里输入 -1 就可以获得 n 的值
剩下的就是 RSA 中的 LSB Oracle Attack 了。
用户知道 RSA 中的公钥 N,e 以及密文 c 并且可以任意构造密文 c1,返回它解密后 m1 的末尾某些位的性质。可以通过多次构造 c1 来把明文 m 缩小在某一个范围内。
因为 c = (m^e) mod N 构造 c1 = (2^e)*c mod N = (2m)^e mod N 对应的 c1 解密之后为 m1 = 2m mod N
数论中有个定理,c = 偶数 a mod 奇数 b,若 c 为奇数,则 a>b,若 c 为偶数,则 ab,结合上面的内容就可以缩小 m 的范围了
from Crypto.Util.number import *from Crypto.PublicKey import RSA from pwn import * p = remote("challenges1.hexionteam.com", 5000) p.recvuntil("Flag: ") c = int(p.recvuntil("\nO", drop=True)) e = 0x10001 p.recvuntil("=> ", drop=True) p.sendline("-1") n = int(p.recvuntil("Alot of unhelpful decrypts:", drop=True)) + 1 p.recvuntil("> ") _max = n _min = 0 i = 1 try: while i = 1024: p.sendline(str(c * pow(2 ** i, e, n))) a = p.recvuntil("\n> ", drop=True) if b"0" == a: # even _max = (_max + _min) // 2 else: # odd _min = (_max + _min) // 2 i += 1 except: pass print(long_to_bytes(_max))
# misc
Mirage
f12 可以发现一个 url https://mirage.hexionteam.com/assets/hexfont.ttf 这是一个字体文件
看到字体文件就想到了 FontForge
下载 ttf 后使用 FontForge 可以找到对应的编码表
Hmmm
附件是一个二进制文件,file 命令查看一下发现是 ELF

执行了一下看看

然后试着 cat 一下

over,查了一下其他的 wp
查看 ELF 文件的所有信息 readelf -a ./hmmm 发现里面有个段 .note.f14g

显示 note 段信息 readelf -n ./hmmm 发现 .note.f14g 这个段是被破坏的

考虑 hexdump objdump -j .note.f14g -s hmmm

可以读到 flag,直接写脚本
from pwn import ELF section = ELF('./hmmm').get_section_by_name('.note.f14g').data() print(''.join([chr(_) for _ in section if _ != 0]))
Treturn v}{x+=comp(strtonum("0x"$2));y+=comp(strtonum("0x"$3))}$1=="01"{print x,y}' 2.txt > 3.txt
最后用 Gnuplot 画出来,得到一个镜像图片,在 3D 画图 里面就可以翻转了

CTF实验室
CTF从入门到实践-CTF一站式学习平台-合天网安实验室
声明:笔者初衷用于分享与普及网络知识,若读者因此作出任何危害网络安全行为后果自负,与合天智汇及原作者无关!
渗透测试训练营
掌握渗透测试岗位9大核心知识体系,提升自身岗位竞争力
40+实战训练及考核,提升动手操作能力
胜任渗透测试工程师岗位功能能力
