공부
-
PHP Filters Chain 개요 PHP Filters Chain이란 무엇일까요? PHP Filters Chain 이란 PHP에 존재하는 Wapper과 Conversion Filter들을 활용해 임의의 코드 조각 또는 String을 생성하는 방법 입니다. 그렇다면 우리는 왜 PHP Filter Chain을 사용 할까요? CTF 문제에서 LFI 취약점이 발생할 수 있는 include 계열의 함수들에는 ".php"로 끝나는 파일만 삽입할 수 있도록 소스코드가 작성 되어있는 경우가 많습니다. 이런 경우 우리는 서버내 존재하는 PHP 파일을 삽입할 수 있습니다. 하지만 우리가 원하는 코드를 실행시키기는 어렵습니다. 이때 PHP Filters Chain 기법을 활용하면 위 문제 상황을 해결할 수 있습니다. P..
PHP Filters Chain 기법PHP Filters Chain 개요 PHP Filters Chain이란 무엇일까요? PHP Filters Chain 이란 PHP에 존재하는 Wapper과 Conversion Filter들을 활용해 임의의 코드 조각 또는 String을 생성하는 방법 입니다. 그렇다면 우리는 왜 PHP Filter Chain을 사용 할까요? CTF 문제에서 LFI 취약점이 발생할 수 있는 include 계열의 함수들에는 ".php"로 끝나는 파일만 삽입할 수 있도록 소스코드가 작성 되어있는 경우가 많습니다. 이런 경우 우리는 서버내 존재하는 PHP 파일을 삽입할 수 있습니다. 하지만 우리가 원하는 코드를 실행시키기는 어렵습니다. 이때 PHP Filters Chain 기법을 활용하면 위 문제 상황을 해결할 수 있습니다. P..
2024.01.23 -
Mybatis Mybatis란? MyBatis는 관계형 데이터베이스와 Java 애플리케이션의 프로그래밍을 좀 더 쉽게 할 수 있게 도와주는 Java 기반 개발 프레임워크입니다. 개발자는 별도의 구성 파일에서 기본 SQL 문을 관리하면서 개체 지향 방식으로 데이터베이스를 사용할 수 있으며, 일반 SQL 쿼리기능 을 비롯하여 저장 프로 시저, 고급 매핑과 같은 강력한 기능을 지원하고, 이를 통해 JDBC코드와 매개 변수의 중복을 최소화 할 수 있습니다. 또한 SQL 쿼리들과 애플리케이션을 분리할 수 있기 때문에 더 쉽게 유지 관리 할 수 있습니다. Mybatis를 사용하는 이유 SQL 매핑: MyBatis는 간단한 XML 또는 주석 기반 구성을 사용하여 Java 개체를 SQL 문에 매핑합니다. 이렇게 하면 ..
MybatisMybatis Mybatis란? MyBatis는 관계형 데이터베이스와 Java 애플리케이션의 프로그래밍을 좀 더 쉽게 할 수 있게 도와주는 Java 기반 개발 프레임워크입니다. 개발자는 별도의 구성 파일에서 기본 SQL 문을 관리하면서 개체 지향 방식으로 데이터베이스를 사용할 수 있으며, 일반 SQL 쿼리기능 을 비롯하여 저장 프로 시저, 고급 매핑과 같은 강력한 기능을 지원하고, 이를 통해 JDBC코드와 매개 변수의 중복을 최소화 할 수 있습니다. 또한 SQL 쿼리들과 애플리케이션을 분리할 수 있기 때문에 더 쉽게 유지 관리 할 수 있습니다. Mybatis를 사용하는 이유 SQL 매핑: MyBatis는 간단한 XML 또는 주석 기반 구성을 사용하여 Java 개체를 SQL 문에 매핑합니다. 이렇게 하면 ..
2023.03.22 -
안드로이드가 부팅될 때 동작 순서 안드로이드 Android는 Google에서 개발한 모바일 운영 체제(OS)입니다. Linux 커널을 기반으로 하며 주로 스마트폰, 태블릿 및 기타 모바일 장치와 같은 터치스크린 장치용으로 설계되었습니다. 또한 Android는 다양한 기기를 지원하여 IoT 기기에 많이 사용 됩니다. 1. BootLoader 동작 기본 부트로더는 장치의 하드웨어 구성 요소를 초기화한 다음 일반적으로 별도의 메모리 파티션에 저장되는 보조 부트로더를 로드합니다. 보조 부트로더는 Android 커널을 로드하고 현재 하드웨어에 문제가 있는지 확인하는 과정을 거치고 기기가 정상 상태인지 확인합니다.. 2. Kernel 초기화 부트로더가 Android 커널을 로드하면 커널 초기화 프로세스가 시작됩니다..
안드로이드가 부팅 될 때 동작 순서안드로이드가 부팅될 때 동작 순서 안드로이드 Android는 Google에서 개발한 모바일 운영 체제(OS)입니다. Linux 커널을 기반으로 하며 주로 스마트폰, 태블릿 및 기타 모바일 장치와 같은 터치스크린 장치용으로 설계되었습니다. 또한 Android는 다양한 기기를 지원하여 IoT 기기에 많이 사용 됩니다. 1. BootLoader 동작 기본 부트로더는 장치의 하드웨어 구성 요소를 초기화한 다음 일반적으로 별도의 메모리 파티션에 저장되는 보조 부트로더를 로드합니다. 보조 부트로더는 Android 커널을 로드하고 현재 하드웨어에 문제가 있는지 확인하는 과정을 거치고 기기가 정상 상태인지 확인합니다.. 2. Kernel 초기화 부트로더가 Android 커널을 로드하면 커널 초기화 프로세스가 시작됩니다..
2023.03.17 -
BoF(Buffer Over Flow) 공격 BoF란? BoF(버퍼 오버플로) 공격은 프로그램이 고정 크기 메모리 버퍼에 원래 보관하도록 설계된 것보다 더 많은 데이터를 쓸 때 발생하는 보안 취약점입니다. 초과된 데이터는 인접한 메모리 위치로 오버플로되어 충돌, 데이터 손상과 같은 예기치 않은 동작을 일으키거나 심지어 공격자가 임의 코드를 실행할 수 있도록 허용할 수 있습니다. BoF의 종류 버퍼 오버플로(BoF) 공격은 대상이 되는 메모리 영역과 사용되는 기술에 따라 여러 유형으로 분류할 수 있습니다. BoF 공격의 주요 유형은 다음과 같습니다. 1. Stack Buffer Overflow: 이는 스택 메모리 영역에서 오버플로가 발생하는 가장 일반적인 유형의 BoF 공격입니다. 공격자는 스택의 반환 주..
BoF(Buffer Over Flow) 공격이란?BoF(Buffer Over Flow) 공격 BoF란? BoF(버퍼 오버플로) 공격은 프로그램이 고정 크기 메모리 버퍼에 원래 보관하도록 설계된 것보다 더 많은 데이터를 쓸 때 발생하는 보안 취약점입니다. 초과된 데이터는 인접한 메모리 위치로 오버플로되어 충돌, 데이터 손상과 같은 예기치 않은 동작을 일으키거나 심지어 공격자가 임의 코드를 실행할 수 있도록 허용할 수 있습니다. BoF의 종류 버퍼 오버플로(BoF) 공격은 대상이 되는 메모리 영역과 사용되는 기술에 따라 여러 유형으로 분류할 수 있습니다. BoF 공격의 주요 유형은 다음과 같습니다. 1. Stack Buffer Overflow: 이는 스택 메모리 영역에서 오버플로가 발생하는 가장 일반적인 유형의 BoF 공격입니다. 공격자는 스택의 반환 주..
2023.03.16 -
x86, x64 레지스터 레지스터 레지스터는 CPU(Central Processing Unit)가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 기억장치이다. x86 레지스터 86-32비트 환경 레지스터는 아래와 같습니다. 1. 범용 레지스터: 이 레지스터는 산술, 데이터 이동 및 논리와 같은 다양한 연산에 사용됩니다. x86 아키텍처에는 EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP 등 8개의 범용 레지스터가 있습니다. 2. 세그먼트 레지스터: 작은 데이터의 임시 저장 공간으로, 연산 처리 및 데이터의 주소를 지정하는 역할을 합니다. 컴퓨터의 장치들을 제어하는 역할 또한 수행합니다. 6개의 세그먼트 레지스터는 CS, DS, SS, ES, FS 및 GS입니다. 3. 명령어..
x86, x64 레지스터x86, x64 레지스터 레지스터 레지스터는 CPU(Central Processing Unit)가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 기억장치이다. x86 레지스터 86-32비트 환경 레지스터는 아래와 같습니다. 1. 범용 레지스터: 이 레지스터는 산술, 데이터 이동 및 논리와 같은 다양한 연산에 사용됩니다. x86 아키텍처에는 EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP 등 8개의 범용 레지스터가 있습니다. 2. 세그먼트 레지스터: 작은 데이터의 임시 저장 공간으로, 연산 처리 및 데이터의 주소를 지정하는 역할을 합니다. 컴퓨터의 장치들을 제어하는 역할 또한 수행합니다. 6개의 세그먼트 레지스터는 CS, DS, SS, ES, FS 및 GS입니다. 3. 명령어..
2023.03.16 -
GetDlgItemTextA Function USER32.dll USER32.dll은 창 관리, 입력 처리, UI 컨트롤 및 구성 요소, 대화 상자 및 메뉴, 그래픽 및 페인팅, 사용자 상호 작용 등 필수 기능을 제공합니다. GetDlgItemTextA 이 함수는 대화 상자에서 텍스트를 검색하는 데 사용됩니다. 함수 이름의 'A'는 ANSI 문자 집합을 사용함을 나타냅니다. GetDlgItemTextW라는 함수의 유니코드 버전도 있습니다. UINT GetDlgItemTextA( [in] HWND hDlg, [in] int nIDDlgItem, [out] LPSTR lpString, [in] int cchMax ); 파라미터 총 4개의 파라미터가 있으며 자세한 내용은 아래와 같습니다. hDlg: 컨트롤이 ..
USER32.dll GetDlgItemTextA FunctionGetDlgItemTextA Function USER32.dll USER32.dll은 창 관리, 입력 처리, UI 컨트롤 및 구성 요소, 대화 상자 및 메뉴, 그래픽 및 페인팅, 사용자 상호 작용 등 필수 기능을 제공합니다. GetDlgItemTextA 이 함수는 대화 상자에서 텍스트를 검색하는 데 사용됩니다. 함수 이름의 'A'는 ANSI 문자 집합을 사용함을 나타냅니다. GetDlgItemTextW라는 함수의 유니코드 버전도 있습니다. UINT GetDlgItemTextA( [in] HWND hDlg, [in] int nIDDlgItem, [out] LPSTR lpString, [in] int cchMax ); 파라미터 총 4개의 파라미터가 있으며 자세한 내용은 아래와 같습니다. hDlg: 컨트롤이 ..
2023.03.16