
Payload
- pay : 지불하는, 이익을 주는
- load : 하중, 적재물
운송업에서 기름값, 인건비 등등 빼고 남은 진또배기 '돈 되는 적재물'
→ 본론, 핵심, 진짜 중요한거
→ 핵심 데이터, 실제 수행되는 데이터
분야와 문맥에 따라 다르게 쓰이는 용어입니다.
일상적인 예시로, 우리가 이메일을 보낼 때 메일의 본론을 payload라고 할 수 있습니다.
최근에는 주로 네트워크 또는 보안 분야에서 사용되고 있습니다.
1. 네트워크의 HTTP 패킷에서
패킷(Packet) 이라는 용어도 생각해보면 결국 화물(Package) + 덩어리(Bucket)의 합성어죠.
말하자면 이 화물 덩어리를 서버와 클라이언트와 서로 주고받는 것입니다.
이 패킷은 크게 시작 줄(Start Line), 헤더(Header)와 바디(Body)로 나뉩니다.
- 시작 줄(Start Line) : 요청/응답의 목적 및 상태를 나타냄.
- 헤더(Header) : 요청/응답의 부가 정보를 제공.
- 바디(Body) : 실제 데이터 (있을 수도, 없을 수도 있음.)
HTTP 패킷 중에서 페이로드에 해당하는 부분은 무엇일까요?
바로 바디(Body) 입니다.
그래서 Body 부분을 HTTP 패킷의 페이로드라고도 표현합니다.
2. 보안 및 해킹에서
공격자가 일단 취약점을 발견하고 나면 해당 취약점에 여러 가지를 시도해 볼 수 있는 상태가 됩니다.
이때 취약점에 주입하는 핵심 코드, 데이터 또는 명령을 페이로드라고 부릅니다.
익스플로잇(Exploit)과 조금 헷갈릴 수 있습니다.
익스플로잇이 좀 더 큰 개념으로, '취약점을 공격하는 행위'를 지칭합니다.
익스플로잇이 공격을 실행할 때 사용되는 핵심, 즉 실행 코드나 데이터를 페이로드라고 합니다.
예를 들어 SQL injection point를 찾아 ' OR '1'='1 라는 코드를 입력했다고 가정해 봅시다.
이 때 취약점을 이용해 데이터베이스(DB)에 명령을 전달하는 기술 전반을 한데 뭉뚱그려서 익스플로잇이라고 하고,
이 기술을 이용해 실제로 전달하는 코드 ' OR '1'='1 자체를 바로 페이로드라고 합니다.