SMALL

Dreamhack 2

[Dreamhack] basic_exploitation_000

보호 기법 확인 32bit 바이너리 → 주소가 4byte 단위 relro 없음 → got overwrite 가능(여기서는 딱히 필요 없을 것 같음) 카나리 없음 → bof 공격 가능 nx bit 없음 → shellcode 삽입 가능 no pie → 주소가 그대로 일 것! 바이너리 실행 buf의 주소를 출력한 뒤, 사용자의 입력을 받고 있음 buf의 주소가 계속 바뀌고 있음 → ASLR이 걸려있기 때문! 문제 코드 분석 - basic_exploitation_000.c #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONB..

Dreamhack/Pwnable 2022.04.02

드림핵(Dreamhack) 2강 - 버퍼 오버플로우

*버퍼란?> 지정된 크기의 메모리 공간 *버퍼 오버플로우 취약점이란?> 버퍼가 허용할 수 있는 양의 데이터보다 더 많은 값이 저장되어 버퍼가 넘치는 취약점> 인근 메모리 덮어씀(다른 프로그램의 변수, 파라미터, 제어에 관련한 데이터 등)> 결과적으로 프로그램의 데이터 오염, 예기치 않은 프로그램의 제어, 메모리 접근 위반, 공격자가 원하는 코드를 실행하는 등의 문제 발생 *종류    > 스택 버퍼 오버플로우, 힙 오버플로우 등-> 위치에 따라 구분why?버퍼 오버플로우는 인접한 메모리를 오염시키는 취약점으로, 어떤 메모리를 오염시킬 수 있는지에 따라 공격 방법이 달라짐!#include #include void func(char* arg) {char buffer[4];strcpy(buffer, arg);p..

LIST