본문 바로가기

Kitri_NCS3기 보안과정

170530 단일 행 함수, 다중 행 함수 단일 행 함수(Single Row Function) : 결과 레코드를 찾아서 출력할 때마다 (각 행에) 함수가 적용된다. 다중 행 함수(Multiple Row Function) : 조건절에 만족하는 모든 행을 다 찾고나서 모든 레코드를 한번에 연산한다. 단일 행 함수 분류 - 문자 함수 - 숫자 함수 - 날짜 함수 - 일반 함수 - 형-변환 함수 : SQL문 처리중에 다른 데이터 유형으로 변경필요시 사용 ※단일행 함수의 중첩 사용 : 제한없이 중첩사용 할 수 있으며, 안쪽부터 바깥쪽으로 함수가 처리됨. ※ Dual table 함수에 테스트에 사용되는 테이블 실제 DB에 함수 적용시 처리량이 너무 많은 경우라던가 불편한 경우가 있기 때문에 DUAL을 사용해서 간단하게 테스트 할 수 있다. 항상 하나의 레코.. 더보기
170529 데이터베이스 개요, Select문 웹서버와 웹 어플리케이션 >> 1. 웹서버 :Apache , IIS , nginx, GWS 인터넷 상에서 HTML로 작성된 웹문서를 클라이언트에서 서비스하는 서버. 웹서버에서 회원정보에 대한 서비스를 제공하는 경우 각각의 클라이언트마다 각각의 요구에 맞는 페이지를 작성해주여야 하는 어려움 웹 페이지뿐아니라 그림, 스타일시트 ,자바스크립트도 해당. 회원정보에 대한 서비스 제공은 문서의 형식은 동일하고 데이터의 차이 만있다는점을 특징으로 데이터베이스서버와 웹문서 사이에 미들웨어를 사용해서 필요한 데이터를 가져다 쓰는 형식으로 개선이 가능함 2. 웹 애플리케이션 서버(Web Application Server . WAS) : 제우스, 웹로직, 웹스피어, 레진 등 ... 페이지가 각각의 사용자에 의해서 요청될때 .. 더보기
[Reverse Engineering]PE-Section Table 참고 : http://zesrever.tistory.com ※ PE 파일이란 ? 윈도우즈 환경의 실행파일 포맷을 PE 라고 하며, Portable Executable의 약자. 굳이 EXE 파일만 일컫는것이 아니라 SCR,SYS,DLL,OCX등도 포함됨. PE의 이해는 API후킹, 압축실행파일 등과 같은 고급 리버싱기법의 기본 바탕이된다. PE파일은 디스크상의 모습과 메모리상의 모습이 거의 같다, 실행시 하드에 저장되어 있던 파일의 형태 그대로 메모리에 올라가는 모습을 보인다.PE를 파악하기위해서는 PE파일의 구성요소와 그 구성요소들의 시작점을 찾는 방법을 잘 숙지해야함. 실행파일 분석기를 만들어보는것이 PE를 연구하는데 가장 효과적인방법... PE구성요소 - DOS header- DOS stub code.. 더보기
[Reverse Engineering]PE-PE Header 참고 : http://zesrever.tistory.com ※ PE 파일이란 ? 윈도우즈 환경의 실행파일 포맷을 PE 라고 하며, Portable Executable의 약자. 굳이 EXE 파일만 일컫는것이 아니라 SCR,SYS,DLL,OCX등도 포함됨. PE의 이해는 API후킹, 압축실행파일 등과 같은 고급 리버싱기법의 기본 바탕이된다. PE파일은 디스크상의 모습과 메모리상의 모습이 거의 같다, 실행시 하드에 저장되어 있던 파일의 형태 그대로 메모리에 올라가는 모습을 보인다.PE를 파악하기위해서는 PE파일의 구성요소와 그 구성요소들의 시작점을 찾는 방법을 잘 숙지해야함. 실행파일 분석기를 만들어보는것이 PE를 연구하는데 가장 효과적인방법... PE구성요소 - DOS header- DOS stub code.. 더보기
[Reverse Engineering]PE-DOS Header 참고 : http://zesrever.tistory.com ※ PE 파일이란 ? 윈도우즈 환경의 실행파일 포맷을 PE 라고 하며, Portable Executable의 약자. 굳이 EXE 파일만 일컫는것이 아니라 SCR,SYS,DLL,OCX등도 포함됨. PE의 이해는 API후킹, 압축실행파일 등과 같은 고급 리버싱기법의 기본 바탕이된다. PE파일은 디스크상의 모습과 메모리상의 모습이 거의 같다, 실행시 하드에 저장되어 있던 파일의 형태 그대로 메모리에 올라가는 모습을 보인다.PE를 파악하기위해서는 PE파일의 구성요소와 그 구성요소들의 시작점을 찾는 방법을 잘 숙지해야함. 실행파일 분석기를 만들어보는것이 PE를 연구하는데 가장 효과적인방법... PE구성요소 - DOS header- DOS stub code.. 더보기
170519 힙영역 오버플로우 heap에 할당된 영역을 오버플로우하여 eip를 조작해보자. struct data{ a [32]} struct data *d d= malloc(sizeof(struct data) d->a a[32] *d → malloc 은 heap영역에 할당시켜주는 역할을 한다. #include #include struct data { char name[64]; }; struct fp { int (*fp)(); }; void winner() { system("cat flag"); } void nowinner() { printf("level has not been passed\n"); } int main(int argc, char **argv){ struct data *d; struct fp *f; d = malloc(s.. 더보기
170518 환경변수 변조 (export LD_PRELOAD) 1. LD_PRELOAD 사용 명령어 $env 현재 설정되어 있는 환경 변수들 확인 $env | grep PATH 환경변수중 PATH 확인 LD_PRELOAD 환경변수로 프로그램 실행시 로딩하는 라이브러리를 추가 할 수 있음. 동일한 이름의 함수의 경우 LD_PRELOAD에서 설정한 것이 우선순위가 더 높다. #include main(){sleep(1000); → 실행하면 잠시 멈춘다 } sleep는 정해진 시간동안 잠시 멈추는 기능을 한다. sleep와 같은 이름의 함수를만들어서 LD_PRELOAD 에 추가하여 우선순위를 높이고 우리가 만든 sleep가 실행되도록 해보자. sleep(){ system("ls -al");} "ls -al" 의 명령을 실행하도록 sleep() 을 만들었다. 라이브러리 파일.. 더보기
170516 오버플로우를 이용한 RET 변조 메모리 보호 옵션 sudo apt-get install g++-multilib libc6-dev-i386 sudo sysctl -w kernel.randomize_va_space=0 // 랜덤 스택, 라이브러리 해제 gcc -m32 -o a a.c -fno-stack-protector -mpreferred-stack-boundary=2 // SSP 기능 해제 , 더미없애기 참고 :http://bbolmin.tistory.com/81 1. 더미 value + 실행 코드 주소(ret)#include #include void print(){ printf("eip control success!\n"); ← 정상적인 동작이면 이 함수를 실행할 일이 없다. } 오버플로우를 이용하여 ret를 변조하고 이 함수가 출력.. 더보기
170515 시스템 해킹, 디버거(GDB)-오버플로우 이해하기 시스템 해킹: 시스템 프로그래밍의 취약점을 이용한 공격 기법 시스템 해킹 공격 분류 리모트 공격 : 물리적으로 떨어진 대상을 공격함. 로컬공격 : 대상 컴퓨터 안에서 이루어지는 공격. 공격프로그램으로 희생프로그램 공격. ex) ssh로 붙은 대상에서 공격, 워드 취약점(hwp, ms office등 ) 의 취약점을 공격해서 침투모든 프로그램은 입력을 받아서 작업을 처리하는 동작을 수행하는데 입력할 때 사용자가 인식하지 못하는 방법으로 공격을 수행한다.프로그램 시작 할때 또는 시작 중에 넘겨주는 시점적 유형 두가지악성코드(리모트 공격)의 경우 실행 파일(.exe)로 구분하기 쉽지만 로컬공격은 인식하기 어렵다는 점이 있다. 대표적인 취약점 스택 오버플로우 : 프로그램이 데이터를 받을때, 저장공간을 할당하고 데.. 더보기
170512 컴파운드 파일 분석 Compound File Binary Format (CFBF) : 복합 파일, 복합 문서 형식, 여러 파일 및 스트림을 단일 파일에 저장하기 위한 복합문서 파일형식 Compound 파일구조는 FAT와 유사함 파일 → 파일 할당 테이블과 함께 연결된 섹터로 분할됨 디렉토리 → 섹터 ID가 있는 포함된 파일에 대한 정보 구조512바이트 헤더 레코드와 헤더에 정의된 여러 섹터로 구성섹터의 길이는 128*2^n (128, 256, 512, 1024 등....)의 크기를 지원0 sector1 sector HeaderHeader 에 정의된대로 섹터가 구성됨 * 섹터의 길이 하한선이 128인 이유?: 디렉토리 섹터에 단일 디렉토리 항목을 맞추기 위해 필요한 최소값.▷ 섹터의 유형 FAT : 섹터 인덱스 체인 정보Mi.. 더보기