본문 바로가기

Hacking & Security

(52)
환경변수란 ? /* ( 참조 블로그 : https://m.blog.naver.com/PostView.nhn?blogId=koromoon&logNo=220793570727&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F ) */ 환경변수 : 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임으로 쉘에서 정의되고 실행하는 동안 프로그램에 필요한 변수를 나타냄. (1) 동작 범위에 따른 환경변수크게 세 가지 카테고리로 분류가능 1. 로컬 환경 변수 - 현재 진행중인 세션에서만 동작하는 환경 변수2. 사용자 환경 변수 - 특정 사용자에 대해서만 정의된 환경 변수로 로컬 터미널 세션 , 원격 로그인 세션을 사용하여 로그인할때마다 로드됨.3. 시스템 전체 환경 변수 - 해당..
Buffer Overflow Basic 3 Buffer Overflow의 이해 버퍼란 , 시스템이 연산을 하는데 있어 필요한 데이터를 일시적으로 저장하는 저장공간을 말한다. 문자열을 처리하게 되면 문자열 버퍼가 되고 , 수열이라면 수열 버퍼가 되겠다.대부분의 프로그램에서는 이러한 버퍼를 스택에다 생성한다. 스택은 함수 내에서 선언한 지역 변수가 저장되고 함수가 끝나고나면 반환한다. BOF는 미리준비된 버퍼의 크기보다 큰 데이터를 쓸 때 발생하게 된다.만약 40byte 크기의 버퍼가 준비되어있는데 41~44byte를 사용하면 이전 함수의 bp를 수정하게 될 것이다. 더 나아가 45~48byte를 쓴다면 return address가 저장되어 있는 공간을 침범하게 될 것이다.따라서 BOF공격은 공격자가 메모리상의 임의의 위치에다 원하는 코드를 저장시켜..
Buffer Overflow Basic 2 이번엔 프로그램이 실행되면 프로세스가 메모리에 적재되고 메모리와 레지스터의 동작을 간단한 프로그램을 통해 확인해보자. 위와같은 간단한 소스를 짜고 컴파일 ( gcc -s )까지 하자.그 후 simple.c 프로그램이 컴파일 되어 실제 메모리상 어느위치에 존재하는지 확인해보기 위해 gdb를 이용하여 어셈블리 코드와 메모리에 적재될 logical address를 살펴보자. ( 각자 실행 ) 살펴보면 function()함수가 아래에 자리잡고 main()함수는 위에 자리잡음을 확인할 수 있다.따라서 메모리 주소를 바탕으로 생성될 이 프로그램의 segment 모양은 다음과 같다.이 소스에는 전역변수를 지정하지 않았기 때문에 data segment에는 링크된 라이브러리의 전역변수값만 들어있을 것이다. 이제 프로그램..
Buffer Overflow Basic 1 기초관련 내용은 달고나 문서를 참조했습니다. 1. 8086 Memory Architecture 위 사진은 8086 시스템의 기본적인 메모리구조다. 시스템이 초기화되기 시작하면 시스템은 커널을 메모리에 적재시키고 가용 메모리 영역(Available Space)을 확인하게 된다. ( 커널 : 컴퓨터 운영체계의 가장 중요한 핵심으로써 운영체계의 다른 모든 부분에 여러가지 기본적인 서비스를 제공.메모리나 저장장치 내에서 운영체계의 주소공간 관리 , 메모리 관리 역할 ) 요즘 사용되는 시스템의 CPU는 64bit이므로 메모리 영역은 0 ~ 2^64 -1 범위를 갖는다. 프로세스 : 하나의 프로그램이 실행되기 위한 메모리 구조.운영체제는 하나의 프로세스를 실행시키면 이 프로세스를 segment라는 단위로 묶어서 가..
SQL Injection SQL Injection에 대해 알아보기 위해서는 DB를 이해해야 한다. 데이터 : 현실 세계에서 존재하는 여러가지 정보ex) 친구 이름 , 주소 ..etc 데이터베이스 : 데이터를 효율적으로 관리하기 위해 분리한 정보데이터베이스는 테이블로 이루어져있고 테이블은 필드로 이루어져있다. DLL 언어 : 데이터베이스의 테이블을 정의하고 작성 ( create(생성) , alter(변경) , drop(삭제) ) DML 언어 : 데이터베이스를 추가, 갱신, 삭제 및 검색 수행 ( select , insert , update , delete ) DCL 언어 : 데이터베이스의 보안과 데이터의 연속성을 유지 ( grant(권한할당) , revoke(권한제거) , commit(데이터 변경 승인 ) , rollback(데이..
웹 취약점 분류 웹 취약점 종류 및 원인에 대한 이해 , 취약점별 공격로그의 이해 , 취약점별 대책(코딩 및 설정)에 대해 알아보자. 취약점 분류국내외적으로 많이 알려져있는 취약점은 OWASP 10이 있다.(www.owasp.org 참고) 웹 취약점을 10가지 형태로 분류하고 정의하며 , 웹 보안에 관심있는 기업 및 개인이 함께 공통된 프로젝트등을 진행한다. owasp 등과 같은곳에서 얻을수 있는 정보의 취약점들을 정리해보자. 구분 점검 항목 설명 1 SQL Injection 로그인 폼 및 변수 값에 SQL 쿼리를 삽입하여 로그인 우회 및 DB를 변조하는 공격 2 XSS (Cross Site Scripting) 게시판 및 URL 파라미터에 스크립트를 삽입하여 해당 글 혹은 링크를 클릭하는 사용자의 정보를 취득하는 공격 ..
HTTP Request ~ HTTP Response 앞서 간략히 소개한 HTTP Response & Request에 대해 상세히 알아보자. HTTP Request 웹 브라우저 -------- HTTP Request(요청) -----------> 웹 서버 웹 브라우저 웹 서버
웹 기초 지식 2 인코딩 - 정보의 형태나 형식을 표준화 , 보안 , 처리속도 향사 , 저장 공간 절약 등을 위해서 다른 형태나 형식으로 변환하는 처리 혹은 처리 방식 즉 , 컴퓨터가 이해할 수 있는 형식으로 바꾸어주는 것을 의미 1)ASCII 인코딩- 영문자를 컴퓨터가 해석할 수 있는 숫자로 변환 시켜준다.1byte(8bit) 중 7bit를 이용하여 표현하므로 총 127개의 문자 표현 가능.ASCII코드표는 검색하여 쉽게 찾아볼 수 있다. 2) URL 인코딩- ASCII코드에 없는 영어를 제외한 외국어와 ASCII 코드에서 표현하지 않는 특수문자를 표현하기 위해 사용.- URL인코딩의 특징으로는 코드의 앞에 %문자가 포함된다. 종류 URL 코드 특징 ? %3F 인자(파라미터)를 넘겨줄때 사용 & %26 각각의 인자를 구..