swuforce

[드림핵] Dream Beginners_정리

범호야 2024. 9. 25. 22:22

Hacking?

해킹은 '취약한 부분을 찾아내어 이를 공격하는 과정'

해킹은 컴퓨터 시스템에서 취약한 부분을 제보하여 시스템이 더 나은 안정성을 갖게 하거나 부정한 목적을 위해 사용할 수 있다.


Web Hacking

웹을 대상으로 하는 해킹 및 관련 기술

System Hacking, a.k.a Pwnable

소프트웨어의 취약점을 찾아서 이를 공격하는 해킹 분야

Reverse Engineering

소프트웨어에서 취약점을 파악하거나 악성 프로그램의 행동을 분석하는 등의 용도


War game?

워게임은 의도적으로 취약점이 존재하도록 설계된 모의 해킹 환경(시험 문제)

흔히 볼 수 있는 해킹 방어 대회의 일반적인 형식은 CTF(=Capture The Flag)

Flag는 공격 대상인 시스템에 존재하는 파일--이 파일의 내용이 공격자가 제출해야 하는 답안 (텍스트)

 

라이트업(write-up)

CTF나 워게임 문제에서 플래그를 찾는 과정을 써 놓은 기록이나 과정

문제를 풀지 못했는데 풀이를 봐도 되는지 고민하신다면, 다음 체크리스트를 확인해보세요.
-주어진 문제가 어떤 프로그램/서비스인지 이해했다.
-취약점(또는 이상한 부분)이 무엇인지 파악했다.
-찾은 취약점을 어떻게 공략/공격하면 될지 구상이 되었다.
-풀이에 필요한 코드나 페이로드를 작성했다.

컴퓨터 과학 기초

컴퓨터 과학(Computer Science) : 컴퓨터를 이용한 모든 작업과 그 기반 이론을 연구하는 학문

해킹은 컴퓨터 과학 지식을 응용하여 프로그램이나 시스템의 취약점을 발견하고 공격하는 행위. 따라서 컴퓨터 시스템, 네트워크, 프로그래밍 언어, 운영 체제 등의 컴퓨터 과학 지식이 요구됨 

 

진법 : 임의의 숫자 혹은 문자를 사용하여 수를 표현하는 체계

10진법 : (0~9)의 숫자로 수를 표현

실생활에서 사용

2진법 : (0,1)의 숫자로 수를 표현

컴퓨터는 2진법을 사용

2진수를 표현할 때는 보통 0b라는 접두어를 붙인다.

16진법 : (0~9, A~F)의 문자로 수를 표현


비트와 바이트

컴퓨터는 0과 1로만 데이터를 표현하고 처리. 전기 신호가 통할 때는 1, 통하지 않을 때는 0

컴퓨터에서 사용하는 데이터의 최소 단위를 1비트(bit, binary digit)-->8비트로 구성된 더 큰 단위는 1 바이트(byte)

8비트 = 1 바이트

최상위 비트(MSB, Most significnat Bit) 와 최하위 비트(LSB, Least Significant Bit)

최상위 비트는 숫자의 크기에 가장 큰 영향을 미치고, 최하위 비트는 숫자의 크기에 가장 작은 영향을 미친다. 

부호가 있는 데이터의 경우, MSB는 부호의 의미를 지닌다. 0이면 양수, 1이면 음수

0b10010100

바이트 오더링(Byte Ordering)

2바이트 이상의 데이터는 메모리에 연속적으로 저장. 이때 각 바이트가 메모리에 정렬되는 방식을 바이트 오더링(Byte Ordering)이라고 부른다. 

빅 엔디안(Big-endian) : 가장 왼쪽에 있는 바이트부터 메모리의 낮은 주소에 저장

리틀 엔디안(Little-endian) : 가장 오른쪽에 있는 바이트부터 메모리의 낮은 주소에 저장

 

[개념 정리를 통해 각각의 의미와 용도에 대해 다시 한 번 알게 되는 시간이었다.]