본문 바로가기

Security118

[Lazenca] Protection Tech > PIE, RELRO [PIE] 1. PIE(Position Independent Executable) 1) PIE - 위치 독립 코드로 이루어진 실행 가능한 바이너리 2. 예시 #include char *gBuf = "Lazenca.0x0"; void lazenca() { printf("Lazenca.0x1\n"); } void main(){ printf("[.data] : %p\n",gBuf); printf("[Function] : %p\n",lazenca); } - build PIE file lazenca0x0@ubuntu:~/Documents/Definition/protection/PIE$ gcc -o NoPIE PIE.c lazenca0x0@ubuntu:~/Documents/Definition/protection/P.. 2022. 2. 10.
[Dreamhack System Hacking] STAGE 7 - hook 보호되어 있는 글 입니다. 2022. 2. 10.
[Dreamhack System Hacking] STAGE 7 - oneshot 보호되어 있는 글 입니다. 2022. 2. 10.
[Dreamhack System Hacking] STAGE 7 - 함께실습 [함께실습] Hook Overwrite - malloc과 free 함수를 후킹하여 각 함수가 호출될 때, 공격자가 작성한 악의적인 코드가 실행되게 하는 기법 1. 메모리 함수 훅 1) malloc, free, realloc hook - C언어에서 메모리의 동적 할당과 해제를 담당하는 대표적인 함수 : malloc, free, realloc - 각 함수는 libc.so에 구현되어 있음 - libc에는 이 함수들의 디버깅 편의를 위해 훅 변수가 정의되어 있음 ex. malloc 함수 : __malloc_hook 변수의 값이 NULL이 아닌지 검사하고, 아니라면 malloc을 수행하기 전에 __malloc_hook이 가리키는 함수를 먼저 실행함. (이때, malloc의 인자는 훅 함수에 전달됨) free 함수.. 2022. 2. 10.
[Dreamhack System Hacking] STAGE 7 [PIE] 1. PIC 1) PIC (Position-Independent Code) - 리눅스에서 ELF는 실행 파일(Executable)과 공유 오브젝트(Shared Object, SO) 두 가지가 존재합니다. - 실행 파일은 addr처럼 일반적인 실행 파일, 공유 오브젝트는 libc.so와 같은 라이브러리 파일 - 공유 오브젝트는 기본적으로 재배치(Relocation)가 가능 - 재배치가 가능하다는 것 = 메모리의 어느 주소에 적재되어도 코드의 의미가 훼손되지 않음 - 이런 성질을 만족하는 코드가 PIC - gcc는 PIC 컴파일 지원 - 예제 코드 // Name: pic.c // Compile: gcc -o pic pic.c // : gcc -o no_pic pic.c -fno-pic -no-pi.. 2022. 2. 10.
[bWAPP] HTML Injection - Stored(Blog) 1. HTML Injection Stored이 무엇인지 간단하게 정리하시오. 1) HTML Injection Stored (저장기법) - 공격자가 취약한 사이트에 악의적인 스크립트가 포함된 게시글 등을 올릴 경우 이 게시물을 열람하면 스크립트가 실행됨 - 공격 당한 사용자는 쿠키를 탈취당하거나 다른 사이트로 리다이렉션 되는 등의 피해를 입음 - 데이터베이스에 저장되고 해당 게시물을 열람한 사용자들이 공격의 대상이 되기 때문에 파급력이 큼 - 공격 방법 ⓐ 악성 행위를 하는 html 코드를 게시물에 심음 ⓑ 사용자가 게시물을 조회하면 악성 html 코드 실행 2. 문제 페이지에 코드를 삽입하여 아래와 같이 이전 QUEST인 html injection - reflected (POST)를 해결하세요. [난이도.. 2022. 2. 8.
[bWAPP] HTML Injection - Reflected(POST) 1. 분명 당신은 검색 창에 아무 의미도 없는 값을 입력했습니다. 하지만 burp suite라는 취약점 분석 도구를 통해 아래의 유의미한 결과를 출력할 수 있게 되었습니다. 이 도구를 통해 아무 값을 입력하여 아래 두 번째 사진과 같이 출력하세요. [난이도 low] burp suite를 키고 Intercept is on으로 바꿔준 뒤 문제에서 제시한 대로 아무 의미가 없는 값을 입력해주었다. burp suite에서 코드를 확인하니 아래에 firstname과 lastname에 asdf라는 값이 입력된 것을 확인할 수 있었다. 여기에서 값을 가로채서 asdf라 입력되어있는 곳에 각각 출력해야할 스크립트를 입력하고 forward 버튼을 눌러 값을 전송해주었다. 원하는 화면을 출력할 수 있었다. 난이도 & 결과.. 2022. 2. 8.
[Lazenca] Protection Tech > NX, ASLR [NX] 1. NX 1) NX Bit(NX bit, Never eXecute bit, 실행 방지 비트 - 프로세스 명령어나 코드 또는 데이터 저장을 위한 메모리 영역을 따로 분리하는 CPU의 기술 - NX 특성으로 지정된 모든 메모리 구역은 데이터 저장을 위해서만 사용되며, 프로세서 명령어가 그 곳에 상주하지 않음으로써 실행되지 않도록 만들어 줌 2) DEP(Data Execution Prevention) - 마이크로소프트 윈도우 운영 체제에 포함된 보안 기능 - 악의적인 코드가 실행되는 것을 방지하기 위해 메모리를 추가로 확인하는 하드웨어 및 소프트웨어 기술 - 모드 종류 ① 하드웨어 DEP: 메모리에 명시적으로 실행 코드가 포함되어 있는 경우를 제외하고 프로세스의 모든 메모리 위치에서 실행할 수 없도.. 2022. 2. 6.
[Dreamhack System Hacking] STAGE 6 - basic_rop_x86 보호되어 있는 글 입니다. 2022. 2. 6.