RTL 관련 문제이다.
RTL이란 Return-To-Library의 약자로, NX bit가 걸려 있을때(메모리나 스택에 쉘코드를 올려도 실행이 되지 않음) NX bit을 우회하기 위해 고안된 방법이다.
이 방법은 libc내에 있는 system함수나 execve함수등을 이용하여 직접적으로 쉘을 실행시킬 수 있다.
이를 위해서는 Gadget이 필요함.
중간의 strtol 함수는
long strtol(const char *restrict str, char **endptr, int base);
의 형태이고, char * str = 정수로 변환할 문자열, char **endptr은 숫자로 변경하지 못하는 문자열의 시작 위치, int base는 문자열이 가지고 있는 숫자의 진수 (2~32)을 의미한다.
strtol 함수의 반환 값은 10진수 long형 정수 값을 반환한다.
소스코드의 로직
LAB 5 - 미완성
Mitigation
Code
RTL 관련 문제이다.
RTL이란 Return-To-Library의 약자로, NX bit가 걸려 있을때(메모리나 스택에 쉘코드를 올려도 실행이 되지 않음) NX bit을 우회하기 위해 고안된 방법이다.
이 방법은 libc내에 있는 system함수나 execve함수등을 이용하여 직접적으로 쉘을 실행시킬 수 있다.
이를 위해서는 Gadget이 필요함.
중간의 strtol 함수는
의 형태이고, char * str = 정수로 변환할 문자열, char **endptr은 숫자로 변경하지 못하는 문자열의 시작 위치, int base는 문자열이 가지고 있는 숫자의 진수 (2~32)을 의미한다.
strtol 함수의 반환 값은 10진수 long형 정수 값을 반환한다.
소스코드의 로직
'Hitcon Training' 카테고리의 다른 글