Security

분석📌 실습 코드#include #include void init() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0);}void get_shell() { char *cmd = "/bin/sh"; char *args[] = {cmd, NULL}; execve(cmd, args, NULL);}int main() { char buf[0x28]; init(); printf("Input: "); scanf("%s", buf); return 0;}​(1) 취약점 분석▶ 프로그램의 취약점은 scanf("%s", buf)에 존재scanf 함수의 포맷 스트링 중 하나인 %s는 문자열을 입력받을 때 사용하는 것입력의 길이를 제한하지 않으며, 공백 문자인 띄어..
💡 스택 오버플로우와 스택 버퍼 오버 플로우의 차이점스택 영역은 실행중에 크기가 동적으로 확장될 수 있다. 그러나 한정된 크기의 메모리 안에서 스택이 무한히 확장될 수는 없다. 스택 오버플로우(Stack Overflow)는 스택 영역이 너무 많이 확장되어 발생하는 버그를 뜻한다.반면, 스택 버퍼 오버플로우는 스택에 위치한 버퍼에 버퍼의 크기보다 많은 데이터가 입력되어 발생하는 버그를 뜻한다. 용어가 비슷하여 혼동하기 쉽지만, 이 둘은 전혀 다른 의미를 가지고 있으므로 사용에 주의해야 한다.스택 버퍼 오버플로우(1) 버퍼 오버플로우: 스택의 버퍼에서 발생하는 오버플로우 ✅ 버퍼 - 데이터가 목적지로 이동되기 전에 보관되는 임시 저장소- 데이터의 처리속도가 다른 두 장치가 있을 때, 이 둘 사이에 오가는 ..
함수 호출 규약(1) 함수 호출 규약이란?함수 호출 규약은 함수의 호출 및 반환에 대한 약속이다.  ✅ 함수 호출 과정1. 한 함수에서 다른 함수 호출 시, 프로그램 실행 흐름은 다른 함수로 이동2. 호출한 함수가 반환 시, 원래의 함수로 돌아와서 기존의 실행 흐름을 이어감 ✅ 함수 호출의 특징- 함수 호출 시, 반환된 이후를 위해 호출자의 상태, 반환 주소를 저장해야 함- 호출자는 피호출자가 요구하는 인자를 전달해줘야 하며, 피호출자의 실행 종료 시 반환 값을 전달받아야 함- 함수 호출 규약 적용은 컴파일러의 몫 (2) 함수 호출 규약의 종류[ x86 ]cdeclstdcallfastcallthiscall [ x86-64 ]System V AMD64 ABI의 Calling ConventionMS ABI의..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
veriperi
'Security' 카테고리의 글 목록 (3 Page)