본문 바로가기

분류 전체보기32

Format String Bug Format String​Format : 서식 또는 형식Format FunctionFormat String을 사용해 데이터를 원하는 형식으로 다루는 것이 가능한 함수​Format String어떠한 형식이나 형태를 지정해 주는 문자열Format Function의 인자에 해당하며 텍스트나 Format Tag를 포함ex. char str[20] = “LMS Pwnable”;printf(”Hello %s World!”. str);​Format Tag%로 시작하며 출력할 값에 [옵션]들을 선택 적용해 출력 형태 설정필수적인 최소한의 형태는 ‘%서식 지정자’​% [파라미터$] [플래그] [넓이] [.정밀도] [길이] 서식 지정자파라미터 : 참조할 인자의 인덱스를 지정 (구분자 : $)플래그 : 출력할 인자의 정렬 .. 2025. 11. 19.
Buffer Overflow Stack Buffer Overflow​Stack 영역함수의 호출에 필요한 지역 변수와 매개 변수 등이 저장되는 영역데이터의 교환이 Top에서만 이루어지며, 높은 주소에서 낮은 주소의 방향으로 메모리 영역 차지 (선입선출)​Stack Frame스택 영역에 저장되는 함수의 호출 정보로 함수마다 스택 영역을 구분하기 위해 생성되는 공간RSP(Stack Pointer)가 아닌 RBP(Base Pointer)로 로컬 변수, 파라미터, 복귀 주소에 접근​Stack Buffer Overflow스택 할당 개체의 범위를 벗어난 버퍼 접근으로 발생하는 오류할당된 입력 크기보다 큰 입력 값으로 RET의 주소 영역을 침범해 악성코드로 덮는 공격 가능​Stack Buffer Overflow 취약 코드 예시​※ 취약 함수sca.. 2025. 11. 19.
Pwnable Tools gcc 컴파일​GCC (GNU Compiler Collection)GNU 프로젝트의 일환으로 개발된 컴파일러C, C++, Java, Objective-C, Fortran, Ada, Pascal 등 언어 지원​기본 컴파일 방법gcc 명령어 입력 시, 해당 파일을 컴파일​메모리 보호 기법 설정 옵션gcc 명령어를 사용해 컴파일 메모리 보호 기법 설정하거나 해제할 수 있는 옵션이 존재 NX 해제 : gcc -z execstackSSP 해제 : gcc -fno-stack-protectorPIE 해제 : gcc -no-pieRELRO 해제 : gcc -z norelro​gcc 컴파일gcc를 사용해 C로 작성한 소스코드를 실행 가능한 바이너리 파일로 생성하는 과정디버깅 Tool​Linux​GDB (GNU Debu.. 2025. 11. 19.
Pwnable 방법론 Pwnable 기초 지식​파일 디스크립터리눅스 혹은 유닉스 계열의 시스템에서 프로세스가 파일을 다룰 때 사용 (파일 핸들러)파일로 취급되는 외부 장치를 포함한 모든 장치들에 접근할 때 사용파일이 시스템으로부터 할당 받은 대표 번호음수가 아닌 정수 타입으로 표현​※ POSIX : 운영체제 간의 호환성을 위해 IEEE에서 만든 유닉스 운영체제 기반의 API 규격​파일 디스크립터 확인 방법실행 중인 프로세스 PID 확인2. PID로 해당 프로세스의 파일 디스크립터 정보 확인연산자 우선순위수식 내에 여러 연산자가 함께 등장할 때, 어느 연산자를 먼저 처리해야 되는지를 정하기 위함1순위 : x++, x—, (), [], ., →2순위 : ++x, —x, +x, -x, !, ~, (자료형), *x, &x, size.. 2025. 11. 19.
리눅스 & 어셈블리어 어셈블리어 이해​어셈블리어란? (Assembly language)기계어와 1:1로 대응되는 저급 언어CPU마다 지원하는 Operation & Register가 상이​레지스터CPU에서 연산을 처리할 때 사용되는 고속의 기억장치범용 레지스터, 세그먼트 레지스터, FLAG 레지스터, RIP 레지스터​어셈블리어 명령어 구성명령은 Opcode와 Operand로 구성Opcode : 명령에서 실행할 동작을 나타내는 코드 (call, jump, push, mov, lea 등)Operand : 피연산자로, 연산 대상을 의미함 (rbp, rsp, rax, eax 등)​어셈블리어 명령어Opcode mov : mov operand1, operand2Operand2의 값을 Operand1에 복사lea : lea operand1.. 2025. 11. 19.
사이버 공격 유형 분석 및 분석 방법 디지털화가 급속도로 진행됨에 따라, 정보 기술에 크게 의존하게 되었다.하지만 이러한 변화는 사이버 공격의 증가라는 부작용을 초래했다.기업과 개인 모두가 사이버 공격의 대상이 되면서, 사이버 보안의 중요성이 강조되고 있다.랜섬웨어, 정보 유출, DDoS 공격, 피싱, 코인 마이너 등 다양한 형태의 공격이 매일같이 발생하고 있으며, 모두 각기 다른 방식으로 심각한 피해를 야기할 수 있다.이번 포스트에서는 주요 사이버 공격 유형을 분석하고, 각 공격의 특성과 피해를 이해하여 효과적인 대응 전략을 마련하는 방법에 대해 확인해보겠다.사고분석을 진행하면서 다양한 사고들을 많이 접했지만, 대표적으로 제일 많이 발생했던 사고들 몇 가지만 중점으로 다루려고 한다.​​1. 랜섬웨어랜섬웨어는 사용자의 데이터를 암호화한 후,.. 2025. 11. 19.