본문 바로가기

리눅스/linux

Linux 10

문제

The password for the next level is stored in the file data.txt, which contains base64 encoded data
//비밀번호는 data.txt라는 파일에 저장되어 있으며, 이 파일에는 Base64로 인코딩된 데이터가 포함되어 있다

파일이 뭐가 있는지 확인

 

cat명령어로 data.txt파일을 열어봤지만 flag라기에는 너무 긴 문자열이 나왔다

아까 문제에서 base64로 인코됭된 데이터가 포함되어 있다고 했으니 base64를 써보는게 좋을 것 같다

 

base64를 쓰니 flag값이 바로 나오게 되었다.

 


base64

Base64는 바이너리 데이터를 텍스트 형식으로 변환하는 방식이고, 데이터 전송이나 저장할 때 주로 사용한다.

 

목적: 바이너리 데이터를 문자로 변환해 텍스트 시스템에서 다루기 쉽게 한다.

인코딩 방식: 데이터를 6비트 단위로 나누고, 64개의 문자 집합(대.소문자, 숫자, +,/ )을 사용해 표현한다.

예시
원본 데이터: "hello"
Base64 인코딩 결과: "aGVsbG8="

 

 

base64에는 인코딩, 디코딩이 있는데 각각은 

 

  • Base64 인코딩: 바이너리 데이터를 Base64 문자열로 변환
  • Base64 디코딩: Base64 문자열을 원래의 바이너리 데이터로 변환
  • 추가로
    • 패딩: 원본 데이터의 길이가 3바이트의 배수가 아닐 경우, = 문자를 추가하여 길이를 맞춘다.
    • 용도: 이메일 전송, URL 인코딩, JSON 데이터 처리 등에서 사용, 바이너리 데이터를 텍스트 형식으로 변환하여 호환성을 보장
    • 데이터 크기: Base64 인코딩 후 데이터는 원본 데이터보다 약 33% 더 커진다. 이는 3바이트의 데이터가 4바이트의 Base64 문자열로 변환되기 때문

 

'리눅스 > linux' 카테고리의 다른 글

Linux 11  (0) 2024.08.07
Linux 9  (1) 2024.03.24
Linux 8  (4) 2024.03.23
Linux 7  (0) 2024.03.20
Linux 6  (0) 2024.03.20