본문 바로가기

Return Into Libc(RTL) 1997년 8월, Solar Designer는 Bugtrack에서 논의되던 'Return Into Libc'(이하 RTL) 기술을 이용한 공격 코드를 공개하면서 자신의 Non-executable Stack 패치를 수정한다. RTL은 함수의 Return Address(이하 RET)를 덮어써서 공유 라이브러리에 존재하는 system()과 같은 함수를 가리키게 하고 함수 실행에 필요한 매개 변수를 전달하여 실행하는 공격법이다. 메모리에 적재된 공유 라이브러리는 스택에 존재하는 것이 아니므로 Non-executable Stack을 우회하는 것이 가능하다. 여기에서 잠깐 Non-executable Stack 이란? 1997년에 Solar Designer는 스택에서 어떤 코드도 실행되지 못하도록 하는 기능을 가진 .. 더보기
strncpy 함수 Buffer Over Flow(이하 BOF)를 막기위해서 쓰는 함수 中 strncpy 라는 함수가 있다. 하지만 strncpy 함수에서도 취약한 부분이 발생할 수 있다는것을 BOF 원정대 (golem -> darkknight) 문제를 풀면서 공부할 수 있었다. = strncpy 함수에 대한 설명 = #include // C++ 에서는 char * strncpy ( char * destination, const char * source, size_t num ); - 간략한 설명 -문자열에서 일부 문자들 만을 복사한다.source 에서 destination 으로 source 의 처음 num 개의 문자들 만을 복사(NULL 도 포함해서) 한다. num 보다 source 의 문자 수가 더 적다면은 모자란 부분은.. 더보기
Console(콘솔) 데이터의 입력을 담당하는 키보드와 출력을 담당하는 모니터를 총칭하는 단어. 이중에서 키보드를 가리켜 '콘솔 입력 장치'라 하고, 모니터를 가리켜 '콘솔 출력 장치'라 한다. 따라서 데이터를 모니터로 출력하는 printf 함수는 '콘솔 출력 함수'가 되고, 데이터를 키보드로부터 입력 받는 scanf 함수는 '콘솔 입력 함수'가 된다. C언어에는 printf 함수와 scanf 함수 이외에 다양한 콘솔 입출력 함수가 정의되어 있다. 다만 이 두 함수가 대표적은 콘솔 입출력 함수일 뿐이다.[출처] 도서 : 난 정말 C Programming을 공부한 적이 없다구요! (윤성우 지음) 더보기