일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바
- webhacking.kr
- pythonchallenge
- html5
- 파이썬
- 석문초등학교
- 파이썬챌린지
- setCookie
- 암호수학
- 대외활동
- Linux
- 피들러
- 경기대학교
- 쏙쏙캠프
- 웹
- 리눅스
- ARP Redirect
- 명품자바프로그래밍
- 해커스쿨
- C
- FTZ
- 실습문제
- Web
- SuNiNaTas
- C언어
- java
- hackerschool
- 써니나타스
- 리버싱
- 웹해킹
- Today
- Total
Hongfluenza
인코딩(Encoding)이란 ? : ASCII, URL, HTML, Base64, MS Script 인코딩 본문
webhacking.kr 회원가입 문제를 해결하면서 Base 64 디코딩을 활용했다.
네트워크 전공 시간에 다양한 디코딩 방법을 이용해 문제를 해결했던 기억을 되살려 인코딩이 무엇이며 어떠한 종류가 있는 지에 대해 살펴보도록 하겠다.
1> 인코딩이란?
- 정보의 형태나 형식을 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해서 다른 형태나 형식으로 변환하는 처리 혹은 그 처리 방식 → 즉, 컴퓨터가 이해할 수 있는 형식으로 바꾸어주는 것.
- 내용에는 변화가 없고, 암호화로는 사용이 불가능하다.
- 인코딩의 종류에는 ASCII, URL, HTML, Base64, MS Script 등이 있다.
2.1> ASCII 인코딩
- ASCII (American Standard Code for Information Interchange) : 미국 정보교환 표준 코드
- 영문자를 컴퓨터가 해석할 수 있는 숫자로 변환시켜 준다.
- 1Byte(8bit)중 7bit를 사용하여 0~127까지 총 128개의 문자를 구성한 코드
- 128개의 문자는 영어 알파벳 대문자, 소문자, 보조문자, 제어문자로 구성되어 있다.
2.2> URL 인코딩
- ASCII코드에 없는 영어를 제외한 외국어(한국어 포함)와 ASCII코드에서 표현하지 않는 특수문자를 표현하기 위해 사용된다.
- 형식 : 기존 문자열의 HEX값 앞에 '%' 사용 (ASCII Table의 출력가능 문자)
- 한글 : UTF-8 사용
- Force Full URL Encoding : 모든 문자열을 강제로 인코딩
- URL은 ASCII 문자 집합을 사용하여 인터넷을 통해서만 전송할 수 있다.
2.2.1> 중요 URL 메타문자
종류 | URL 코드 | 특징 |
? | %3F | 인자(파라미터)를 넘겨줄 때 사용 |
& | %26 | 각각의 인자를 구분할 때 사용 |
= | %3D | 인자 전달자로서 인자값을 인자로 전달할 때 사용 |
% | %25 | 16진수(Hex) 값을 표현할 때 사용 |
+ | - | 공백 문자를 표현할 때 사용 |
NULL(공백) | %00 | 공백을 표현할 때 사용 |
2.2.2> url 인코딩 예제
http://www.convertstring.com/ko/EncodeDecode/UrlEncode
URL 인코딩 - 온라인 URL 인코더
www.convertstring.com
다음은 url 인코딩을 해주는 사이트이다.
인코딩하고자 하는 텍스트인 'url 인코딩을 해보자!' 를 입력했더니
다음과 같은 결과가 나왔음을 확인할 수 있었다.
2.3> HTML 인코딩
- HTML 문서 안에는 스크립트와 같이 특수한 기능을 하는 문자들이 포함된다. 악의적인 특수기능을 막기 위해 인코딩하여 안전하게 HTML문서와 함께 사용하기 위해서 HTML 인코딩을 사용한다.
- ASCII코드값을 기준으로 인코딩 된다.
EX) A(ASCII 값==65) -- HTML 인코딩 → %#65;
- 특징 : 코드의 앞에 %#문자 가 포함된다.
- HTML 인코딩은 XSS(크로스 사이트 스크립트)의 방어 대책으로 사용된다.
2.3.1> HTML Table
HTML ENCODING | |
공백 | |
< | < |
> | > |
& | & |
' | ' |
" | " |
2.3.2> HTML 인코딩 예시
http://www.convertstring.com/ko/EncodeDecode/HtmlEncode
html로 인코딩 - 온라인 html로 인코더
www.convertstring.com
HTML 인코딩을 해주는 사이트를 통해 HTML 인코딩을 해보자.
2.4> BASE 64 인코딩
- 이메일 사용을 위한 인터넷 표준 포맷인 MIME를 사용하기 위해 사용한다.
SMTP라는 이메일 전송 프로토콜도 존재하지만 ASCII는 7bit문자만 지원하기 때문에 더 많은 문자를 표현하기 위해 사용된다. - 2진 데이터를 ASCII 형태의 텍스트로 표현 가능하다.
- WEB인증 중, 기본인증에 사용된다.
- 64개의 문자를 사용한다. ( 영문 대,소문자, 숫자, +, / )
- 특징 : 코드의 마지막에 = 또는 ==문자가 포함된다.
- Base 64 인코딩은 8bit의 문자를 6bit단위로 나누어 준다. 각각의 6bit를 Base64 인코딩 테이블과 매칭시키는 방식을 사용한다.
2.4.1> BASE 64 인코딩 순서
1) 아스키 테이블 맵핑
2) 2진수 변환
3) 6bit 단위로 분할
4) 10진수 변환
5) BASE64 테이블 맵핑
6) 패딩연산( 총 비트수 % 3 => 0 : 없음, 1 : =, 2: == )
2.5> MS Script
- Microsoft에서 제공하는 인코딩 기법으로 IE에서만 사용가능
- IE는 MS Script Decoder를 가지고 있음
- <script launguate="Jscript.Encode>를 명시하여 IE에게 알려주어야 함
- 범용성이 뛰어나지 않아 거의 사용하지 않는다.
출처
인코딩이란? (ASCII, URL, HTML, Base64, MS Script 인코딩)
인코딩이란? - 정보의 형태나 형식을 변환하는 처리나 처리 방식 - 내용에는 변화가 없다 - 암호화로는 사용 불가능 - 종류로는 ASCII , URL , HTML , Base64 , MS Script 인코딩이 있다 ASCII 인코딩 - ASCII (Am..
itstory.tk
인코딩과 인코딩 방식
인코딩이란? 먼저 사전적 용어를 찾아보면, 정보의 형태나 형식을 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해서 다른 형태나 형식으로 변환하는 처리 혹은 그 처리 방식을 말한다. 즉, 컴퓨터가 이..
wooeong.tistory.com
https://effectivesquid.tistory.com/entry/Base64-%EC%9D%B8%EC%BD%94%EB%94%A9%EC%9D%B4%EB%9E%80
Base64 인코딩이란?
인코딩이란? Base64 인코딩에 대해 알아보기전에 먼저 인코딩이란게 무엇인지 간략하게 알아보자. 인코딩(encoding)은 정보의 형태나 형식을 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해서 다른 형태..
effectivesquid.tistory.com
'STUDY > WEB' 카테고리의 다른 글
SQL 인젝션 (0) | 2019.07.13 |
---|---|
[PHP] 문자열 필터링 함수, ereg와 eregi (0) | 2019.07.06 |
[PHP] Setcookie() 함수 (0) | 2019.07.06 |
간단한 ASP 문법 정리 (0) | 2019.07.04 |
피들러(Fiddler)와 프록시(Proxy) (0) | 2018.11.07 |