본문 바로가기

분류 전체보기48

컴파일러 구성 요소 간략 정리 컴파일러는 프로그래밍 언어를 기계어로 번역하는 도구로, 구성 요소로 어휘 분석기와 구문 분석기, 의미 분석기, 코드 생성기를 갖는다. 어휘 분석기, 구문 분석기, 의미 분석는 컴파일러의 프론트엔드(Front-End), 코드 생성기는 백엔드(Back-End)에 해당한다. 해당 게시물은 각 구성 요소에 대해서 간략하게 설명한다. 1. 어휘 분석기 어휘 분석기(Lexical Analyzer)는 소스 코드에서 어휘를 분석하는 도구로, 문자열 형태로 주어진 소스 코드를 문법적인 의미가 있는 토큰(Token)으로 분해한다. 해당 소스 코드에서 크게 의미가 없는 공백, 개행, 탭 등의 문자는 제거하고 문법적 의미가 있는 식별자, 연산자, 키워드, 상수만 토큰화(Tokenization)해서 저장한다. #include .. 2023. 1. 30.
취약점 진단 - 중요 정보 노출 목차 1. 개요 해당 취약점은 웹 서비스에 중요 정보(시스템 정보, 관리자 계정 정보, 개인 정보 등)가 노출되어 있을 때 발생하는 취약점이다. 공격자는 웹 서비스에 노출된 중요 정보를 수집하고 추가 침투를 위해 활용하거나 개인 정보를 수집할 수 있다. 2. 실습 그림 1에서 확인한 /gm/lib 디렉터리 내부에 .sql 파일이 존재한다. .sql 파일은 데이터베이스 구성 시에 사용하는 파일로, 해당 파일 내부에는 구성할 데이터베이스의 정보가 존재한다. 해당 파일 내부에서 gmshop 데이터베이스 스키마 정보를 획득했다. 또한, 해당 파일에 하드코딩된 기본 관리자 계정 admin, 비밀번호 admin 또한 발견했다. 3. 대응 방안 외부 서비스에 노출되어 있는 solution.sql 파일을 삭제한다. c.. 2023. 1. 18.
웹 취약점 진단 - 디렉터리 리스팅 목차 1. 개요 디렉터리 리스팅 취약점은 외부에 웹 페이지의 디렉터리 구조가 노출되는 취약점으로, 공격자는 해당 취약점을 활용해서 간단하게 내부 디렉터리 구조를 파악할 수 있다. 또한 내부 파일에 대해서 접근 차단을 따로 하지 않았을 경우 웹 서버 내부 파일에 접근할 수 있을 가능성도 생길 가능성이 있다. 2. 실습 진행 해당 취약점 점검에는 칼리 리눅스에 설치되어 있는 dirb라는 도구를 활용한다. 해당 명령어를 통해서 추출한 디렉터리인 /gm/upload/에 접근해 보도록 하겠다. /gm/upload 내부의 파일에 접근하는데 성공했다. 3. 대응 방안 ■ 아파치 # 아파치 httpd.conf 파일 Options Indexes AllowOverride All Options None AllowOverri.. 2023. 1. 18.
OSI 7 Layer 간단 요약 1. 개요 OSI 7 Layer란 네트워크 통신의 구성 요소를 7 레이어로 나눠서 구분하는 것을 가리키는 용어다. 네트워크 통신의 구성 요소를 7 레이어로 나눔으로써 생긴 이점은 다음과 같다. 첫 번째, 네트워크 통신 시 표준화된 아키텍쳐를 정의하기 위해 사용한다. 두 번째, 계층 별로 역할을 나누었기에 네트워크 오류 발생 시 어느 계층에서 발생하는 것인지 특정 짓기 쉬워진다. 2. OSI 7 Layer 구성도 레이어 이름 설명 전송 단위 식별자 Layer 7 Application Layer HTTP, Telnet, SSH 등 어플리케이션이 사용하는 프로토콜이 위치한 레이어 대표 프로토콜: HTTP, Telnet, SSH 등 Data Stream - Layer 6 Presentation Layer 데이터.. 2023. 1. 17.