Download presentation
Presentation is loading. Please wait.
1
박승제 parkddol84@gmail.com
웹 애플리케이션 기술 박승제
2
책 여정은 힘들겠지만 끝나고 나면 해킹에 대해 자신감이 생길 것이라 생각 20장 으로 구성됨 ~9/1 (19장,20장)
3
Outline 해킹에 필요한 웹 애플리케이션 기술 HTTP 프로토콜 웹 기능 서버 측 기능 클라이언트 측 기능 인코딩
4
What is HTTP? What is HTTP? (Hyper Text Transfer Protocol)
월드와이드웹(WWW)에서 쓰이는 핵심 통신 프로토콜 요청-응답(Request-Response) 방식 초기에는 정적인 텍스트 기반 자원들을 검색하기 위해 만들어짐 요즘에는 분산 어플리케이션을 위해 여러 가지 방법으로 사용되기도 함 HTML, audio, video, … 웹 서버 TCP 포트 80 하이퍼 텍스트 링크 하이퍼 텍스트 링크 HTML, audio, video, … 웹 서버 하이퍼 텍스트 링크 TCP 포트 80 HTML, audio, video, … 웹 서버 TCP 포트 80 웹 클라이언트 (browser)
5
HTTP HTTP의 전송 수단은 TCP 80포트 요청과 응답마다 독립적인 TCP연결 비 연결지향적(connectionless)
6
HTTP 메시지 구조 요청 메시지 응답 메시지 정보, 자료 요청 요청 라인, 헤더, 공백 라인, 본문으로 구성
요청에 대한 응답 상태 라인, 헤더, 공백 라인, 본문으로 구성 요청 라인 헤더 (일반헤더 | 요청헤더 | 엔터티헤더) 공백 라인 엔터티 본문 (요청 메시지) 상태 라인 (일반헤더 | 응답헤더 | 엔터티헤더) (응답 메시지) HTTP 요청 메시지 HTTP 응답 메시지
7
일반적인 HTTP 요청 예 GET /books/serarch.asp?q=wahh HTTP/1.1
Accpet: image/gif, image/xxbitmap, image/jpeg, image/pjpeg, application/xshockwaveflash, application/msexcel, application/vnd.mspowerpoint, application/msword, */* Referer: Accept-Language: en-gb, en-us;q=0.5 Accept-Encoding: gzip, defalte User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1) Host: wahh-app.com Cookie: lang=en; JSESSIONID=0000tI8rk7joMx44S2Uu85nSWc_:vsnlc502
8
예) GET /books/serarch.asp?q=wahh HTTP/1.1
요청 라인(Request Line) 메소드 서비스 수행 기능 명시 GET 메소드는 별도의 메시지 바디를 필요로 하지 않음 URL 웹 페이지 위치 정보 HTTP 버전 HTTP 버전 정보 (현재는 1.1) 예) GET /books/serarch.asp?q=wahh HTTP/1.1 메소드 (요청 타입) SP URL HTTP 버전 CR LF 프로토콜 :// 호스트 주소 : 포트 번호 / 경로
9
중요한 헤더 정보 GET /books/serarch.asp?q=wahh HTTP/1.1
Accpet: image/gif, image/xxbitmap, image/jpeg, image/pjpeg, application/xshockwaveflash, application/msexcel, application/vnd.mspowerpoint, application/msword, */* Referer: Accept-Language: en-gb, en-us;q=0.5 Accept-Encoding: gzip, defalte User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1) Host: wahh-app.com Cookie: lang=en; JSESSIONID=0000tI8rk7joMx44S2Uu85nSWc_:vsnlc502 Referer 헤더 해당 요청이 이전에 어디에서 부터 요청을 받았는지에 대한 URL을 나타냄
10
중요한 헤더 정보(cont) GET /books/serarch.asp?q=wahh HTTP/1.1
Accpet: image/gif, image/xxbitmap, image/jpeg, image/pjpeg, application/xshockwaveflash, application/msexcel, application/vnd.mspowerpoint, application/msword, */* Referer: Accept-Language: en-gb, en-us;q=0.5 Accept-Encoding: gzip, defalte User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1) Host: wahh-app.com Cookie: lang=en; JSESSIONID=0000tI8rk7joMx44S2Uu85nSWc_:vsnlc502 User-Agent 헤더 브라우저나 클라이언트의 소프트웨어 정보를 보여줌
11
중요한 헤더 정보(cont) GET /books/serarch.asp?q=wahh HTTP/1.1
Accpet: image/gif, image/xxbitmap, image/jpeg, image/pjpeg, application/xshockwaveflash, application/msexcel, application/vnd.mspowerpoint, application/msword, */* Referer: Accept-Language: en-gb, en-us;q=0.5 Accept-Encoding: gzip, defalte User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1) Host: wahh-app.com Cookie: lang=en; JSESSIONID=0000tI8rk7joMx44S2Uu85nSWc_:vsnlc502 Host 헤더 URL 주소에 나타난 호스트명을 자세하게 나타내기 위해 사용됨
12
중요한 헤더 정보(cont) GET /books/serarch.asp?q=wahh HTTP/1.1
Accpet: image/gif, image/xxbitmap, image/jpeg, image/pjpeg, application/xshockwaveflash, application/msexcel, application/vnd.mspowerpoint, application/msword, */* Referer: Accept-Language: en-gb, en-us;q=0.5 Accept-Encoding: gzip, defalte User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1) Host: wahh-app.com Cookie: lang=en; JSESSIONID=0000tI8rk7joMx44S2Uu85nSWc_:vsnlc502 Cookie 헤더 서버가 클라이언트에게 전송한 인자 값에 추가 정보를 보낼 때 사용함
13
일반적인 HTTP 응답 예 HTTP/1.1 200 OK Date: SAT, 19 May 2007 13:49:37GMT
Server: IBM_HTTP_SERVER/ Apache/ (Unix) Set-Cookie: tracking=tI8rk7joMx44S2Uu85nSWc Pragma: no-cache Expires: Thu, 01 Jan :00:00GMT Content-Type: text/html;charset=ISO Content-Language: en-US Content-Length: 24246 <!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”> <html lang=“en”> <head> <meta http-equiv=“Content-type” content=“text/html;charset=iso ”> …
14
상태 라인(Status Line) HTTP 버전 상태 코드 상태 설명 응답 메시지에서 사용하는 HTTP 버전
요청 수락 및 수행 시도의 결과를 나타내는 3자리의 십진수 코드 200(성공)이 가장 일반적 상태 설명 사용자를 위한 상태 코드의 설명 정상적으로 페이지가 전달되면 OK 예) HTTP/ OK HTTP 버전 SP 상태 코드 상태 설명
15
중요한 HTTP 응답 정보 HTTP/1.1 200 OK Date: SAT, 19 May 2007 13:49:37GMT
Server: IBM_HTTP_SERVER/ Apache/ (Unix) Set-Cookie: tracking=tI8rk7joMx44S2Uu85nSWc Pragma: no-cache Expires: Thu, 01 Jan :00:00GMT Content-Type: text/html;charset=ISO Content-Language: en-US Content-Length: 24246 <!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”> <html lang=“en”> <head> <meta http-equiv=“Content-type” content=“text/html;charset=iso ”> … Server 헤더 통상적으로 웹 서버 소프트웨어를 나타내는 배너가 들어있음 이 정보는 맞을 수도 혹은 틀릴 수도 있음
16
중요한 HTTP 응답 정보(cont) HTTP/1.1 200 OK
Date: SAT, 19 May :49:37GMT Server: IBM_HTTP_SERVER/ Apache/ (Unix) Set-Cookie: tracking=tI8rk7joMx44S2Uu85nSWc Pragma: no-cache Expires: Thu, 01 Jan :00:00GMT Content-Type: text/html;charset=ISO Content-Language: en-US Content-Length: 24246 <!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”> <html lang=“en”> <head> <meta http-equiv=“Content-type” content=“text/html;charset=iso ”> … Set-Cookie 헤더 브라우저에게 쿠키에 대한 정보를 알려줌
17
중요한 HTTP 응답 정보(cont) HTTP/1.1 200 OK
Date: SAT, 19 May :49:37GMT Server: IBM_HTTP_SERVER/ Apache/ (Unix) Set-Cookie: tracking=tI8rk7joMx44S2Uu85nSWc Pragma: no-cache Expires: Thu, 01 Jan :00:00GMT Content-Type: text/html;charset=ISO Content-Language: en-US Content-Length: 24246 <!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”> <html lang=“en”> <head> <meta http-equiv=“Content-type” content=“text/html;charset=iso ”> … Progma 헤더 브라우저에게 no-cache와 같은 캐시 지시를 보내기 위해 사용
18
중요한 HTTP 응답 정보(cont) HTTP/1.1 200 OK
Date: SAT, 19 May :49:37GMT Server: IBM_HTTP_SERVER/ Apache/ (Unix) Set-Cookie: tracking=tI8rk7joMx44S2Uu85nSWc Pragma: no-cache Expires: Thu, 01 Jan :00:00GMT Content-Type: text/html;charset=ISO Content-Language: en-US Content-Length: 24246 <!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”> <html lang=“en”> <head> <meta http-equiv=“Content-type” content=“text/html;charset=iso ”> … Expires 헤더 브라우저는 요청한 자원에 대해 Expires 시간까지 클라이언트의 하드에 저장된 복사본 내용을 사용
19
중요한 HTTP 응답 정보(cont) HTTP/1.1 200 OK
Date: SAT, 19 May :49:37GMT Server: IBM_HTTP_SERVER/ Apache/ (Unix) Set-Cookie: tracking=tI8rk7joMx44S2Uu85nSWc Pragma: no-cache Expires: Thu, 01 Jan :00:00GMT Content-Type: text/html;charset=ISO Content-Language: en-US Content-Length: 24246 <!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”> <html lang=“en”> <head> <meta http-equiv=“Content-type” content=“text/html;charset=iso ”> … Content-Type 헤더 이 메시지 바디에 무엇이 있는지 알려줌(예에서는 html문서)
20
중요한 HTTP 응답 정보(cont) HTTP/1.1 200 OK
Date: SAT, 19 May :49:37GMT Server: IBM_HTTP_SERVER/ Apache/ (Unix) Set-Cookie: tracking=tI8rk7joMx44S2Uu85nSWc Pragma: no-cache Expires: Thu, 01 Jan :00:00GMT Content-Type: text/html;charset=ISO Content-Language: en-US Content-Length: 24246 <!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”> <html lang=“en”> <head> <meta http-equiv=“Content-type” content=“text/html;charset=iso ”> … Content-Length 헤더 메시지 바디 길이를 바이트 단위로 나타냄
21
HTTP 메소드 일반적으로 쓰는 것은 GET 과 POST GET POST URL 문자열에 인자 값을 보내는 방식
그러므로, 쿼리 문자열에는 중요한정보가 들어있어서는 안 됨 POST 요청 인자를 메시지의 바디에 보내는 방식 여전히 브라우저의 열어본 페이지 목록에 포함 하지만, 메시지 바디로 전송된 매개변수들은 브라우저 주소 창에 표시 되지 않음
22
GET vs. POST
23
그 외의 메소드 HEAD TRACE OPTIONS PUT … GET 요청과 비슷
서버가 클라이언트에 응답할 때 바디를 보내지 않음 TRACE 진단을 위한 목적으로 사용 서버는 응답바디에 요청 받은 자료와 똑같은 내용을 보냄 OPTIONS 특정 자원에 맞는 메소드 방식을 알려달라고 서버 측에 요청할 때 사용 서버는 Allow 헤더에 사용할 수 있는 모든 메소드 리스트를 보냄 PUT 서버에 특정 자원을 올릴 때 사용하는 방식(요청 바디의 내용) …
24
URL URL 형식 예 Uniform Resource Locator 웹 자료 고유의 이름 자원을 검색할 때 사용
프로토콜://호스트명[:포트 번호]/[경로/]파일명[?param=값] 예
25
HTTP 헤더 HTTP는 수많은 종류의 헤더를 제공 일반적인 헤더 Connection Content-Encoding
HTTP 전송 완료 후, TCP 연결을 차단할지, 열어둘지 결정 Content-Encoding 메시지 바디의 인코딩 방식을 결정 Content-Length 메시지 바디의 길이 Content-Type 메시지 바디의 컨텐츠 종류(e.g. text/html) Transfer-Encoding 메시지 바디가 HTTP 전송을 쉽게 하게 도와주는 인코딩 방법
26
요청 헤더 Accept Accept-Encoding Cookie Host If-Modified-Match
If-None-Match Referer User-Agent
27
응답 헤더 Cache-Control Etag Expires Location Pragma Server Set-Cookie
WWW-Authenticate
28
쿠키 쿠키 웹 애플리케이션이 사용자를 구분할 때 사용되는 HTTP 프로토콜의 요소 key-value 쌍으로 구성
세미콜론(;)으로 구분 공격자가 취약점을 찾을 때 쿠키를 많이 사용! (7장에서 자세히) Set-Cookie: tracking=tI8rk7joMx44S2Uu85nSWcc Cookie: tracking=tI8rk7joMx44S2Uu85nSWcc
29
쿠키의 속성 Set-Cookie 헤더는 다음과 같은 속성들을 포함할 수 있음 Expires domain path secure
쿠키의 유효기간 없으면 쿠키는 현재 작업 세션에서만 사용됨 domain 쿠키를 사용할 수 있는 도메인 path 쿠키가 사용될 수 있는 URL 경로를 나타냄 secure 이 속성이 설정되면 쿠키는 HTTPS 요청으로만 전송함 HttpOnly 이 속성이 설정되면 쿠키는 클라이언트 쪽의 자바스크립트로 직접 접근할 수 없음
30
상태 코드(Status Code) 상태코드의 첫 번째 십진수 의미 승인된 상태코드의 의미 1XX: 정보 2XX: 성공
200 OK 302 Found 404 Not Found 201 Created 304 Not Modified 500 Internal Server Error 202 Accepted 400 Bad Request 501 Not Implemented 204 No Content 401 Unauthorized 502 Bad GateWay 301 Moved Permanently 403 Forbidden 503 Service Unavailable
31
GET 메소드 실습
32
POST 메소드 실습
33
HTTPS HTTP HTTPS 암호화되지 않은 단순한 TCP 사용
네트워크에 잠입해 있는 공격자가 중간에 정보를 가로챌 수 있음 HTTPS HTTP + SSL/TLS 네트워크를 통과하는 모든 데이터의 기밀성과 무결성을 보호 요청과 응답은 HTTP와 동일하게 작동
34
HTTP 프록시 HTTP 프록시 서버 클라이언트 브라우저와 목적지 웹서버 간의 중개 역할
프록시 서버를 사용하게 설정시, 모든 요청은 프록시로 설정한 서버에게 보내짐 대부분의 프록시는 캐싱, 인증, 접근 통제와 같은 서비스를 제공 HTTPS를 뚫고 모든 요청과 응답을 조작할 수 있는 환경을 만들 수 있음 (4장에서 자세히)
35
HTTP 인증 HTTP 프로토콜의 인증방법 Basic NTLM Digest
각 메시지 요청 헤더에 Base64로 인코딩한 문자열을 사용자 자격 증명으로 보냄 Challenge/Response 방법 NTLM 프로토콜 사용 MD5 checksum 사용
36
Basic Access Authentication
Password encoded in Base64; no encryption Sent in clear for every subsequent requests Sniffing compromises the password Basic Access, in repsonse to the request, 401 with a WWW-authenticate header challenging for credendentials using basic Realm = protection space name/ protected area , presented to the user If the username/password matches the server version, grant access (200 OK HTTP message) Otherwise, 401 unauthorized message again Password stored in clear form Demo! : user Admin & pass BasicSucks ; Sniffing very easy, hard to detect! (intrusion detection…) Any 401 contains en error message -> Demo with wrong pass QUESTIONS?
37
Digest Access Authentication
Can’t anticipate nonce Password lookup doesn’t require plaintext password storage GoAhead example? Questions? response = MD5[MD5(username:realm:password):nonce:nc:cnonce:qop:MD5(method:URI)]
38
웹 애플리케이션은 통신 프로토콜뿐 아니라 각 기능을 활용 하기 위해 수많은 기술들을 사용하고 있다 따라서, 그 기술에는 어떤 것이 있으며 어떻게 동작하고 있는지 알아야 한다
39
서버 측 기능 예전의 WWW는 정적인 내용을 가짐 오늘날의 대부분은 동적인 형태를 취함
단순한 HTML페이지 오늘날의 대부분은 동적인 형태를 취함 사용자가 요청하면 서버는 해당 사용자의 요청을 서버 측 기능을 이용하여 처리 각 사용자는 요청에 맞는 컨텐츠를 받음 동적인 자료를 요청할 때 다양한 인자들도 함께 전송 인자 전송 방법 URL 쿼리 이용 HTTP 쿠키 이용 바디에 POST 방식 이용
40
다양한 기술 스크립트 언어 웹 애플리케이션 플랫폼 웹 서버 데이터 베이스
PHP, VBScript, Perl 등 웹 애플리케이션 플랫폼 ASP.NET, Java 등 웹 서버 Apache, IIS, Netscape Enterprise 등 데이터 베이스 MS-SQL, 오라클, MySQL 등 파일시스템, SOAP 기반 웹 서비스, 디렉토리 서비스 등…
41
자바 플랫폼 엔터프라이즈 자바 빈(EJB) Plain Old Java Object(POJO)
자바에서 사용하고 있는 중요한 소프트웨어 컴포넌트 애플리케이션 내에 비즈니스 기능에 대한 로직을 캡슐화 Plain Old Java Object(POJO) 보편적으로 사용하나 자바 객체 EJB보다 더 가볍고 간단 자바 서블릿(Java Servlet) 애플리케이션 서버에 존재하는 객체 클라이언트로 부터 HTTP요청을 받고 응답하는 역할 자바 웹 컨테이너(Java web container) 자바 기반의 웹 앱의 실시간 환경을 제공해주는 플랫폼 또는 엔진 아파치 톰캣, JBoss, WebLogic 등
42
ASP.NET 마이크로소프트 사의 웹 애플리케이션 프레임워크 닷넷 프리임워크 사용 개발을 용이하게 함
가상 머신 강력한 API등 개발을 용이하게 함 ASP.NET 프레임워크는 XSS과 같은 많이 알려진 취약점으로부터 보호함 개발자의 최소한의 노력으로
43
PHP Personal Home Page LAMP 굉장히 많이 사용됨 무료
Linux Apache MySQL PHP 굉장히 많이 사용됨 무료 PHP의 설계와 초기화 설정은 보안 버그들을 넣기 쉽게 만들어짐 18장에서 자세히 설명
44
클라이언트 측 기능 HTML 하이퍼 링크 HyperText Markup Language 웹 인터페이스를 만드는 핵심 기술
태그를 기반으로 한 언어로, 브라우저 안의 문서 구조를 기술할 때 사용 현재 HTML5 버전 표준화 작업 중 하이퍼 링크 사용자가 하이퍼링크를 클릭하면 서버로 전송 <a href=“/news/showStory?newsid=181833&lang=en”>Salenowon!</a> GET /news/showStory?newsid=181833&lang=en HTTP/1.1 Host: wahh-app.com … By Browser
45
폼(Form) 하이퍼 링크는 정적(static) 좀 더 유연해지기 위해 폼(form)을 사용
사용자가 브라우저를 통해 원하는 입력 값을 넣을 수 있음
46
폼 전송 시 변환 <form action=“/secure/login.php?app=quotations? method=“post”> username: <input type=“text” name=“username”><br/> password: <input type=“password” name=“password”> <input type=“hidden” name=“redir” value=“/secure/home.php”> <input type=“submit” name=“submit” value=“log in”> </form> POST /secure/login.php?ap=quotations HTTP/1.1 Host: wahh-app.com Content-Type: application/x-www-form-urlencoded Content-Length: 39 Cookie: SESS=GTnrpx2ss2tSWSnHXJGyG0LJ47MXRsjcFM6Bd username=daf&password=foo&redir=/secure/home.php&submit=log+in By Browser
47
자바스크립트 클라이언트 측 언어 유저 인터페이스를 강화하고 페이지를 동적으로 만드는 강력한 언어 기능의 예
사용자가 입력한 데이터를 서버에 전송하기 전에 유효성 검사 사용자의 행동에 응답해 사용자 인터페이스를 동적으로 수정 브라우저 내의 DOM의 조회와 업데이트를 함으로써 브라우저의 동작을 조작 AJAX 가능하게 함 하지만 제대로 관리되지 않으면 공격자에게 취약점을 노출 시킴 12장에서 자세히
48
씩 클라이언트(Thick Client) 컴포넌트
브라우저의 포함된 기능을 확장하기 위해 커스텀 코드를 사용 브라우저의 플러그인 형태로 실행 또는, 클라이언트 컴퓨터 자체에 설치됨 자바 애플릿 액티브X 컨트롤(ActiveX Control) 쇽웨이브(Shockwave) 플래시 객체 5장에서 자세히 설명
49
아스키(ASCII) What is ASCII?
American Standard Code for Information Interchange a character-encoding scheme 총 128개의 문자가 정의되며 7비트로 표현됨(27) 모든 나라의 문자를 표현하지는 못 함
50
URL 인코딩 (Percent-Encoding or URL Encoding)
URL은 US-ASCII 문자 집합에서 출력 가능한 문자들만 포함 0x20-ox7e의 범위도 포함 이 범위 안의 수많은 문자들은 특별한 의미를 지님 URL 스키마 자체 or HTTP 프로토콜 이런 문제가 있는 문자들을 인코딩 할 때 URL인코딩 사용 16진수 ASCII형태와 그 앞에 %를 붙여서 만들어지기도 함 +는 띄워쓰기를 의미
51
유니코드 인코딩 유니코드 16비트 유니코드 UTF-8 입력 승인 메커니즘을 공격할 때 사용되기도 함 문자 인코딩의 표준
전세계 모든 문자를 표현하는 문자셋(charset set) 일부는 웹 애플리케이션에서 특수문자를 나타낼 때 쓰이기도 함 16비트 유니코드 앞에 %u가 나오고 16진수로 표기된 유니코드가 뒤에 옴 예) %u2215 / %u00e9 e UTF-8 가변 형 인코딩(1바이트 이상) 제일 앞에 %가 붙고, 바로 뒤에 문자를 16진법으로 나타낸 숫자가 따라옴 예) %c2%a9 © 입력 승인 메커니즘을 공격할 때 사용되기도 함
52
HTML 인코딩 다양한 문자들은 메타문자로서 HTML안에서 특별한 의미를 가짐 특정한 리터럴 문자들
문서의 구성보다는 그 내용을 정의하는 데 사용 이런 문자들은 HTML 인코딩 해야 함 수많은 HTML엔티티를 정의 특정한 리터럴 문자들 " “ ' ‘ & & < < > > 모든 문자들은 십진법(또는 16진법)으로도 표현 가능 "(") “ '(') ‘ 크로스 사이트 스크립팅 취약점을 찾을 때 눈 여겨 봐야 함(12장에서 자세히)
53
Base64 인코딩 바이너리 데이터들을 출력 가능한 ASCII문자로 나타나게 할 수 있는 인코딩 방식 다양하게 사용됨
SMTP Basic HTTP authentication 뒤에 = 문자들 때문에 쉽게 구별할 수 있음
54
Base64 인코딩 방식 변환 입력 데이터를 세 바이트 블록으로 나눔 각 블록은 다시 6비트씩 네 부분으로 나눔
6비트는 64개 표현 가능(26) ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz / 출력 데이터의 세 블록보다 작게 나왔다면 출력은 하나 또는 두 개의 = 문자로 채워짐
55
Hex 인코딩 Hex 코드란? 예 한글일 경우에는? 쉽게 알아챌 수 있음 문자의 아스키 코드 값을 16진수로 바꾼 문자
0~9, A,B,C,D,E,F 바이너리 데이터를 전송할 때 쓰임 예 “daf” -> 한글일 경우에는? utf-8(3byte) -> 6자리의 16진수 euc-kr(2byte) -> 4자리의 16진수 쉽게 알아챌 수 있음
56
정리 HTTP 웹 애플리케이션은 HTTP같은 통신 프로토콜 뿐만 아니라 다양한 기술을 활용
WWW에 쓰이는 핵심 통신 프로토콜 해킹을 잘 하려면 이 프로토콜을 자세히 알아야 함 웹 애플리케이션은 HTTP같은 통신 프로토콜 뿐만 아니라 다양한 기술을 활용 해킹을 잘 하려면 이 다양한 기술도 알아야 함 클라이언트 측 기술 서버 측 기술 인코딩 4장 웹 앱을 공격하기 위한 구체적인 계획에 대해 자세히 설명 웹 앱의 보안 취약점을 발견하는 데 아주 필수적인 역할
57
Q&A
Similar presentations