0. Encoding Schema
Encoding은 암호화가 아니다. 예전에는 암호화 비슷한 느낌으로 쓰인 적도 있었다고 한다.
상대방이 이해할 수 있는 형태로 데이터를 바꾼다.
ex) ASCII code (아스키코드)
- URL Encoding
- Force Full URL Encoding
IDS(침입탐지시스템) & IPS(침입방지시스템) 등의 통제를 우회하기 위한 용도로 사용
(공격에 많이 사용하는 어떤 특정 단어들을 스크리닝하는 것을 회피하기 위함)
- EUC-KR
- 8비트 문자 인코딩 / 대표적인 한글 완성형 인코딩
- Unicode
- 16비트 encoding으로 2^16개의 표현으로 전 세계 문자를 모두 표현 가능
- UTF-8
- 유니코드에서 가변 길이 문자 인코딩을 통해 낭비를 없앰. 가장 많이 사용
1. HTML Encoding (중요)
HTML 문서 내에서 특별한 기능을 수행하는 문자들을 안전하게 브라우저에 표현하기 위해 인코딩
XSS 공격에 대응하기 위한 방법으로 사용
Step1.
Server PC에서
c:Inetpub/webhack 폴더에 아래 htmlencoding.html 파일 작성 후 저장
<html>
<head>
<title> html encoding test </title>
</head>
<body>
<시간>과 <노력>을 투자한 만큼 <실력>이 쌓여간다.
<script>alert("hack!")</script>
</body>
</html>
Client PC에서 웹브라우저에서 주소 입력
http://192.168.1.20/htmlencoding.html << 페이지 출력 확인
sever에 있는 htmlencoding.html 파일에서
<script>alert("hack!")</script>에서 script 테그에
아래 HTML encoding 값으로 수정 후 다시 페이지 출력확인!! 동일하게 출력됨
<script>alert("hack!")</script>
2. Base64 Encoding(중요)
- MIME(Multipurpose Internet Mail Extensions)에서 주로 사용
; 인터넷의 전자 메일에서 사용되는 문자 데이터를 표현하기 위한 형식 표준
- Web 인증 중 하나인 기본 인증(Basic Authentication)에도 사용됨
- 64개 문자 / 6bit 한 문자 표현 남은 bit 뒤에 0을 삽입하여 6bit를 맞춰줌
- 글자 수 n%3 만큼 =을 삽입하여 padding 처리
Web = ?
W e b
87 101 98 << 아스키코드 표에서 10진수로 표현
01010111 01100101 01100010 << 10진수를 2진수로 계산
010101 110110 010101 100010 << 6bit씩 끊어줌
21 54 21 34 << 10진수로 바꿔 줌
V 2 V i << Base64 색인
Web = V2Vi
Hack = ?
H a c k
72 97 99 107
01001000 01100001 01100011 01101011
010010 000110 000101 100011 011010 11+0000 << 6bit에 맞춰서 0을 추가해준다
18 6 5 35 26
SGFjaw==
Hack = SGFjaw==
paros에서는 base64에 대한 decoding을 지원한다. 왓더???
Tools - Encode/Hash로 가서 내용 넣어주고 Encode / Decode 양방향으로 원클릭 가능.
'Web Hacking' 카테고리의 다른 글
6. Session Hijacking(세션 관리 및 탈취) (0) | 2022.06.20 |
---|---|
5. Web Authentication(웹 인증) (1) | 2022.06.15 |
3. HTML GET/POST method 차이 패킷 분석 (1) | 2022.06.14 |
2. Burp Suite / Paros 을 이용한 패킷 위변조 (0) | 2022.06.11 |
1. 웹의 구조 및 HTTP (2) | 2022.06.11 |
댓글