base64 는 64 진법 기반의 인코딩 기법입니다. a-z, A-Z, 0-9, +/ 로 구성된 0~63 까지의 문자표를 가지고 있습니다. 모든 문자를 6bit(2^6 = 64) 로 쪼개서 base64문자표로 치환하며 마지막 문자가 정확히 6bit 로 떨어지지 않음면 = 로 구성된 padding bit 를 넣어주는 것이 특징입니다. 다만 컴퓨터의 기본데이터나 ASCII 코드는 8bit 체계로 구성되어 있기 때문에 호환성 향상을 위해 6bit 와 8bit 의 최소공배수인 24bit 를 기본 단위로 인코딩합니다. 따라서 암호문 처럼 생긴 문자열의 맨 마지막에 = 가 한개 또는 두개가 있다면 base64 인코딩 문자라고 유추가 가능합니다. 경우에 따라선 인코딩 문자에 = 가 없을수도 있지만 기본 64문자로만 ..
리눅스에서도 문자열 인코딩을 위한 base64 명령어 자체를 지원합니다. --help 를 붙여 사용법을 살펴보니 간단하게 [해당명령어] [파일명] 정도면 될 것 같네요 base64 방식으로 인코딩된 data.txt 파일을 살펴보겠습니다. 특정 패턴의 암호문 처럼 보이는데 길이가 70 글자 내외, 문자열의 마지막이 == 으로 끝나는 것을 봐선 base64 인코딩이 맞네요 base64 data.txt 로 인코딩된 텍스트가 들어있는 data.txt 를 한번 더 인코딩 해봅시다. 알 수 없는 문자열이 더 길어졌습니다. 이건 문제를 해결한게 아니라, base64 문자를 한번 더 base64 방식으로 인코딩 한 겁니다. 문제를 풀기위해서는 디코딩을 해야겠죠? 위의 사용법을 참고해서 -d 옵션을 붙여봅시다. 11 단..
- Total
- Today
- Yesterday
- java
- solution
- 웹보안공부
- Bandit
- OverTheWire
- 리눅스
- gz
- 웹보안
- find
- 32bit
- 리터럴
- X32
- Encode
- grep
- bz2
- tar
- ssh
- SSL
- Natas
- Linux
- HTTPS
- BASE64
- natas7
- 압축파일
- Strings
- over the wire
- 풀이
- nc
- tr
- OpenSSL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |