전체 글270 [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. [BOJ] SISS 겨울방학 스터디 - 7주차 #10809 [문제] [코드 및 결과] #include int main() { int alpha[26]; char s[101]; scanf("%s", s); for (int i = 0; i < 26; i++) { alpha[i] = -1; } for (int i = 'a'; i num[i]) min = num[i]; } printf("%d %d\n", min, max); return 0; } [설명] 입력받을 정수의 개수 N과 입력받을 정수를 저장할 배열 num을 정수로 선언해주고 정수의 범위에 따라 max는 -1000000, min은 1000000으로 초기값을 잡아준다. scanf로 정수의 개수 N을 입력받고 N만큼 숫자를 입력받아 num 배열에 차근차근 저장해준다. 그리고 값을 배열에 저장하는 동시에.. 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. [6주차] 웹프로젝트 진행 이번주 계획 : 자료 수집 + DB 제작 + DB 데이터 입력 1) 자료 수집 - 각 ott별 콘텐츠 몇 가지 선정 및 해당 콘텐츠에 대한 후기&감상평 모음 2) DB 작업 - DB 생성, table 생성 - 수집한 자료를 DB에 입력 - 웹페이지와 DB 연동 https://github.com/jini-coding/ott_review_project GitHub - jini-coding/ott_review_project: SISS 2022 겨울방학 웹프로젝트 - OTT별 콘텐츠 리뷰 홈페이지 제작 SISS 2022 겨울방학 웹프로젝트 - OTT별 콘텐츠 리뷰 홈페이지 제작. Contribute to jini-coding/ott_review_project development by creating an ac.. 2022. 2. 6. [BOJ] SISS 겨울방학 스터디 - 6주차 #2908 [문제] [코드] #include int rev(int n) { int result = 0; while (n != 0) { result *= 10; result += n % 10; n /= 10; } return result; } int main() { int A, B, max = 0; scanf("%d %d", &A, &B); if (rev(A) > rev(B)) max = rev(A); else max = rev(B); printf("%d\n", max); } [설명] 입력받을 두 수 A, B와 두 수 중에 큰 수를 저장할 max를 정수로 놓는다. 함수 rev를 선언하여 입력받은 수를 거꾸로 뒤집는다. (몫과 나머지 연산 이용) 조건문으로 rev 함수를 이용하여 구한 두 수를 비교하고 두 .. 2022. 2. 6. [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. 이전 1 ··· 13 14 15 16 17 18 19 ··· 30 다음