상세 컨텐츠

본문 제목

[tuCTF] shella-easy

SYSTEM HACKING/CTF, etc

by koharin 2019. 8. 23. 14:09

본문

728x90
반응형

1. 보호기법 확인

 

$ checksec shella-easy

 

 

2. IDA pseudo code 확인

 

 

v5은 0xCAFEBABE 값을 가지고 있는데, 이 값을 0xDEADBEEF로 바꿔야 한다.

또한 gets 함수로 입력받아 overflow 취약점이 있으므로 return address를 덮어 변조할 수 있다.

printf 함수로 s 변수의 주소를 출력해주므로 return address에 &s를 넣어서

리턴 시 s 시작주소로 이동할 수 있도록 한다.

s 에는 shellcode를 넣는다.

=> return to shellcode

 

3. payload

 

변수 s의 시작주소에서부터 변수 v5 까지의 거리는

s가 [ebp-48h]에 위치하고, v5가 [ebp-8h]에 위치하므로 0x48 - 0x8로 구할 수 있다.

 

v5에는 0xDEADBEEF를 넣어주면 된다.

 

v5가 [ebp-8h]에 위치하므로 SFP-8byte에 위치한다.

 

v5의 크기는 8 바이트인데 넣는 값은 4 바이트이므로 SFP 전 v5에 4 바이트의 dummy를 추가로 넣고

SFP + RET을 전달한다.

 

s(72) + SFP(4) + RET(4)

s[ shellcode(44) + A(20) + v5[ 0xDEADBEEF(4) + B(4) ] ] + SFP(4) + RET(4)

 

크게 보면 이런 구조를 갖는다.

 

4. exploit code + exploit

 

 

 

728x90
반응형

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

simple_heap  (0) 2019.12.21
[TAMU 2019] pwn3  (0) 2019.08.23
[HITCON-Training] lab4 : ret2lib  (0) 2019.08.18
r0pbaby 풀고 정리  (0) 2019.08.16
[Defcon 2015] r0pbaby  (0) 2019.08.16

관련글 더보기