상세 컨텐츠

본문 제목

[Exploit Tech] JOP(Jump-Oriented Programming)

SYSTEM HACKING/Exploit Tech

by koharin 2019. 11. 2. 11:47

본문

728x90
반응형

1. JOP(Jump-Oriented Programming)

 

-JMP 명령어를 이용하여 프로그램의 흐름을 제어하는 방법

-JOPgadget : “Exploit에 필요한 코드 + JMP 명령어

Ex. x64 환경에서 함수의 첫 번째 인자값에 0 저장 : “mov rdi, 0; jmp [R9]”

 

2. Vuln code

 

 

-dlsym 함수로 prinf 함수 주소 leak

-read(0, buf, 256) : 크기 50 바이트인 buf256 바이트 입력 -> overflow 취약점

 

* return address buf 변수 사이 거리

Bp1 : vuln 함수 첫 번째 명령어 -> return address

Bp2 : vuln 함수 read 함수 호출 부분 -> buf 함수 주소

 

 

 

3.  JOP 구조로 쉘 따기

 

-ROP gadget 이용해 raxsystem 함수 주소 저장

-ROP gadget 이용해 rdi system 함수의 첫 번째 인자값 (“/bin/sh”) 저장

-“JMP rax” system 함수 호출

 

 

4. Gadget offset

 

* “pop rax; ret” gadget offset : 0xabc07

 

 

* “pop rdi; jmp rax” gadget libc offset : 0x104052

 

 

5. Exploit

 

728x90
반응형

관련글 더보기