본문으로 바로가기

[D+5] Encoding

category 해킹&보안/웹 해킹&보안 2017. 5. 8. 20:25
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

4. Encoding


1) Encoding이란?


▣ 인코딩이란?

- 내용은 같으나 데이터의 형태를 바꾸는 방식.

- 데이터 길이를 줄이는 용도 (현재는 많이 사용되지 않음)

- 암호화로는 사용 불가 (100% 디코딩 됨)


▣ 인코딩 종류

- 동영상 인코딩

- 언어 (문자인코딩)

- 메타문자의 안전한 전송


2) 언어 Encoding


▣ ASCII

- 미국 정보교환 표준 코드 (American Standard Code for Information Interchange)

- 1바이트 중 7bit를 이용해서 0에서 127까지 128개의 문자를 구성한 코드

- 128개의 문자는 영어 알파벳 대문자, 소문자, 보조문자(특수기호), 제어문자로 구성.

- 영문 알파벳을 사용하는 대표적인 문자 인코딩 방법

- URL에서 사용됨.

- 아스키코드표 : http://hyeonnii.tistory.com/83


▣ URL Encoding / Force Full URL Encoding

- URL에 포함될 문자들이 안전하게 웹 서버에 전달되도록 특수한 기능을 가진 문자들을 브라우저가 인코딩하여 전달.

- URL meta 문자들에 대한 인코딩이 필요함.

- 형식 : 기존 문자열의 hex값 앞에 %를 사용 (ASCII Table의 출력가능 문자)

- 한글 : UTF-8 사용 (한글은 완성형-가,나 / 조합형-ㄱ,ㄴ,ㅏ 2개의 종류가 존재)

- Force Full URL Encoding : 모든 문자열을 강제로 인코딩 (메타문자 뿐만아니라 URL 문자열 전체를)


 공백

&nbsp 

< 

> 

& 

' 

&quot 



- 예시

1
2
3
4
5
6
<html>
    <title>HTML Encoding Example</title>
    <body>
    나는 &lt;&#65;&#x42;&#67; 초콜렛&gt;을 좋아합니다.
    </body>
</html>
cs

            ==> 나는 <ABC 초콜렛>을 좋아합니다.

☞ #65 : 10진수

☞ #x42 : 16진수


- 만일 html언어로 게시판에 작성시 브라우저가 자동으로 읽어버려 원하지 않지만 실행을 함.


▣ BASE64 Encoding

- 2진 데이터를 ASCII 형태의 텍스트로 표현 가능

- WEB 인증 중 기본 인증에 사용

- 끝 부분의 padding(==)으로 식별 가능.

- 64개의 문자를 사용 (영문 대, 소문자, 숫자, +, /) --> +, /는 인코딩 규칙을 정의한 사람에 따라 다름.

- 데이터를 6bit 단위로 표현

- 인코딩 방법

① 문자를 아스키코드로 매핑

② 2진수로 변환

③ 6bit 단위로 분리 (마지막 6bit는 남은 개수만큼 뒤에 0을 추가)

④ 10진수로 변환

⑤ base64 Table 매핑

⑥ 패딩 연산 (패딩 =의 수는 처음 2진수로 변환하였을 때 총 비트 수%3)

- BASE64 Table

[출처 : http://articles.squaredprogramming.com/2014/01/i-had-been-spending-lot-of-time.html]


▣ MS Script

- Microsoft에서 제공하는 인코딩 기법으로 IE에서만 사용가능. 

- jscript로 인코딩 (현재는 xp에서만 돌아감..)

- IE는 MS Script decoder를 가지고 있음.

- <script language="Jscript.Encode"> 를 명시하여 IE에게 알려줘야 함.





i2sec 대구지점 23기 수료생.

'해킹&보안 > 웹 해킹&보안' 카테고리의 다른 글

[D+7] 정보수집  (0) 2017.05.12
[D+6] Session & Cookie  (0) 2017.05.10
아스키코드  (0) 2017.05.07
[D+4] 웹 언어  (0) 2017.05.01
[D+3] 웹 프록시  (0) 2017.05.01