전체 글 54

해킹 문제 풀이 실습 (http_hack) - 2

경희대학교 장대희 교수님의 정보보호 수업을 기반으로 정리한 글입니다.실습 진행HTTP8 - XSS Vulnerability Example문제 설명주어진 웹 애플리케이션에서 XSS 취약점을 찾아 실습하는 문제Input을 넣을 때 XSS가 발생할 수 있도록 입력하여 알람창 띄우기※ 알림창을 띄우는 게 XSS가 터짐을 알 수 있는 척도이다. 문제 풀이▶ 입력할 수 있는 칸에 XSS payload 삽입 ※ XSS payload: XSS 공격에 사용되는 악성 스크립트 코드로, 주로 JavaScript로 구성되어 사용자의 브라우저에서 실행된다.▶ 사용자의 입력이 검증없이 렌더링되면서 임의의 JavaScript가 실행됨 결론사용자의 입력 값을 검증 및 이스케이프 처리를 통해 XSS 공격을 방어해야 함 (필터링 기법)..

CS/정보보호 2025.04.03

해킹 문제 풀이 실습 (http_hack) - 1

경희대학교 장대희 교수님의 정보보호 수업을 기반으로 정리한 글입니다.HTTP 프로토콜 소개HTTP(Hypertext Transfer Protocol)란?HTTP는 인터넷상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 프로토콜로,애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동한다. 이러한 HTTP로 보낼 수 있는 데이터는 HTML 문서, 이미지, 동영상, 오디오, 텍스트 문서 등 여러 종류가 있다.▶ TCP/IP 프로토콜 위에 있는 HTTP보안 관점에서 HTTPHTTP는 웹의 기본 프로토콜로, 많은 해킹 기법들이 HTTP를 악용한다. 때문에 HTTP를 이해하면, 웹 애플리케이션에서 발생할 수 있는 다양한 취약점(e.g, SQL Injection, XSS, CSRF 등)을 파악하고 예방..

CS/정보보호 2025.04.02

1. Introduction

경희대학교 장대희 교수님의 정보보호 수업을 기반으로 정리한 글입니다.실습SW 요구사항웹 해킹 (http)Python 설치 방법▶ Python 설치 시 "Add python.exe to PATH" 체크 필요 환경 변수란 운영체제가 프로그램 실행에 필요한 정보를 저장하는 변수로, 특히 PATH 환경 변수는 명령어 프롬프트(CMD, 터미널 등)에서 특정 명령어를 입력했을 때 해당 실행 파일이 어디에 있는지를 찾아 실행할 수 있도록 도와준다. python 명령어 실행 과정사용자가 터미널에서 python 입력OS는 PATH 환경 변수에 등록된 디렉터리 목록을 차례로 검색해당 디렉터리 중 python.exe가 존재하면 실행등록되지 않았다면 "python"을 찾을 수 없습니다."와 같은 오류 발생BURP 다운로드Bu..

CS/정보보호 2025.04.02

XSS game

경희대학교 중앙동아리 쿠러그의 정보보안 강의를 기반으로 정리한 글입니다.XSS gameXSS game은 XSS 공격을 통해 다음과 같이 alert()를 띄우는 게임이다.Level 1: Hello, world of XSS해당 창에 "hi"라고 입력하면,다음과 같이 "hi"가 그대로 뜨는 것을 확인할 수 있다. 주어진 Target code에서 해당 페이지를 보여주는 부분을 찾아보면,message = "Sorry, no results were found for " + query + "." 해당 코드를 찾을 수 있다.이 코드를 보면 입력한 대로 query로 들어간다. 때문에, 아래와 같이 입력을 넣어주면 alert()를 띄울 수 있다. Level 2: Persistence is keyLevel 1을 풀었던 방식..

Chapter 4: Queue

경희대학교 박제만 교수님의 자료구조 수업을 기반으로 정리한 글입니다.QueueWhat is Queue?▶ Logical (or ADT) level Queue is an ordered group of homogeneous items (elements).New elements are added at one end (the rear) -- enqueue.Elements are removed from the other end (the front) -- dequeue. A queue is a FIFO "First In, First Out" structure. (선입선출)e.g., Job buffers, Network buffers, and many others (일을 순서대로 처리해야 되는 모든 상황) ※ buf..

CS/자료구조 2025.03.31

정보보안 3차시: 웹 - SQL Injection

경희대학교 중앙동아리 쿠러그의 정보보안 강의를 기반으로 정리한 글입니다.배경 지식DB (Database)여러 사람이 공유하여 사용할 목적으로 구조화된 정보 또는 데이터의 조직화된 모음집이다.대부분은 여러 개의 표가 모여 있다. (마치 엑셀 시트처럼) DBMS (Database Management Systme)데이터베이스를 '데이터의 집합'이라고 정의한다면, 이런 데이터베이스를 관리하고 운영하는 소프트웨어를 DBMS라고 한다.다양한 데이터가 저장되어 있는 데이터베이스에 여러 명의 사용자나 응용 프로그램이 공유하고 동시에 접근이 가능하게 한다.ex) MySQL, Oracle, MariaDBSQL (Structured Query Language)구조화된 질의 언어라는 뜻으로, 데이터를 쿼리 조작 및 정의하고 ..

Chapter 3: Stack

경희대학교 박제만 교수님의 자료구조 수업을 기반으로 정리한 글입니다.StackWhat is Stack?▶ Logical (or ADT) level Stack is a group of homogeneous items (elements).Removal (pop) and addition (push) of stack items can only occur at the top of the stack. A stack is a LIFO "Last In, First Out" structure.e.g., Undo(무효로 하다, Ctrl + z), Back (browser 뒤로가기), Stack trace ※ stack trace: 프로그램에서 에러가 발생했을 때, 문제를 추적할 수 있도록 함수 호출 순서를 보여주는 로그이..

CS/자료구조 2025.03.28

정보보안 2차시: 웹 - 기본적인 웹 취약점

경희대학교 중앙동아리 쿠러그의 정보보안 강의를 기반으로 정리한 글입니다.웹 해킹해킹이란 개발자가 의도하지 않은 동작을 입력 혹은 행위를 통해 악의적인 결과를 만들어내는 것을 말하며,웹 해킹은 클라이언트와 웹 서버 간의 요청과 응답 흐름에서 발생한다.클라이언트 / 서버▶ 클라이언트 / 서버 클라이언트브라우저서버라는 다른 컴퓨터에 접속할 수 있는 응용프로그램이나 서비스웹페이지에서 하는 요청은 대부분 웹브라우저가 함 (웹에서 클라이언트는 브라우저)HTML, JS, CSS 등웹페이지를 요청해서 CSS와 같은 요소에 연결해서 홈페이지가 그려짐브라우저의 위치도 내 컴퓨터이기에, 코드들의 실행 위치도 내 컴퓨터 안에 있음페이지를 전송받으면 인터프리터를 통해 페이지를 화면에 뿌림서버 사이드웹서버, 데이터베이스클라이언트..

Programming Exercise: Lab #1

경희대학교 박제만 교수님의 자료구조 수업을 기반으로 정리한 글입니다.Encoding errors▶ 운영체제별로 줄 바꿈 문자를 채택한 게 다르다.CR (Carriage Return, \r): 커서가 해당 라인의 젤 앞쪽으로 이동 e.g., Mac OS (클래식 버전)LF (Line Feed, \n): 커서는 그대로 있으면서 줄만 바꿈 e.g., Unix, Linux, Mac OS (현대 버전)CRLF (CR + LF, ENTER): 줄도 바꾸면서 커서도 제일 앞쪽으로 이동 e.g, Windows간혹 협업을 하다 보면 어떤 사람이 Mac OS에서 작업한 코드를 Windows에서 받아 실행 시키려고 하면 에러가 나는 경우가 있다.따라서, Mac에서 작성된 파일을 Windows에서 사용할 경우, “LF” or..

CS/자료구조 2025.03.25

Chapter 2: Unsorted/Sorted Lists

경희대학교 박제만 교수님의 자료구조 수업을 기반으로 정리한 글입니다.List DefinitionsLinear relationship:Each element except the first has a unique predecessor(전임자), and each element except the last has a unique successor(후임자).Length:The number of items in a list; the length can vary over time. (e.g., append, remove)Unsorted list vs Sorted list ※ 배열(Array) vs 리스트(List)C 같은 언어에서 사용하는 배열(Array)은 크기가 고정되어 있어서 한 번 선언하면 크기를 바꿀 수 없..

CS/자료구조 2025.03.23