웹에 관련한 기초 지식을 쌓고 간다.
웹 쪽은 공부한 기반이 없어서 기초 수업이 반갑다.
그러고보면 기반이 없지는 않다.
초등학교 때 방과 후 수업으로 HTML관련 공부를 했던 기억이난다. (내용은 기억 안나지만)
IMF로 난리인데 그 와중에 IT 강국으로 도약하겠다고 전용선깔리기 시작하고 했던 시절
학교에서도 방과 후 수업을 IT관련한 것으로 많이 열었었다.
뭔지도 모르고 컴퓨터로 게임 할 생각에 수업들었던 기억이 어렴풋이 떠오른다.
xp를 보니까 그 시절 정말 열심히 했었던 게임들도 떠오르고 파랑새가 집에 있는 줄 이제 알았다니!!
0. 웹의 구조
Client : 서버에 웹브라우저를 통해 웹 서비스 요청(Requests)
1차 방화벽 : 포트에 맞는 패킷만 통과시킬 수 있도록
2차 web 방화벽 : XSS, injection 등의 공격용 패킷을 차단하기 위해
Web Server : 요청에 대한 응답(Response) (IIS, Apache, Netscape)
------------------------------ 이 단계까지가 정적인 방식 (기초 웹) ------------------------------------
정해져 있는 웹페이지를 주는 것만 아니라 사용자의 입력에 따라 동적인 페이지를 제공하기 위해
WAS(Web Application Service - DB에 쿼리문 전달(ASP, PHP, ISP))
Web Server가 DB에 정보를 요청하는 것(질의) SQL(Query)
+ DB(MS-SQL, MySQL, Oracle) 이 Backend에 추가됨
Python jango / wordpress 웹서버 ~ DB까지를 쉽게 만들 수 있게 나온 기술
위의 주소에서 의미를 읽을 수 있어야 한다.
http://www.aegisone.co.kr/showtable.asp?page=1&name=nano
http 프로토콜로 전송되어 aegisone.co.kr의 도메인 네임을 가지고
showtable.asp WAS로 ?부터는 쿼리문 page=1 & name=nano의
조건을 가지는 페이지를 불러온다는 의미이다.
1. HTTP (Hyper Text Transfer Protocol)
1) Hyper Text : 비순차적인 검색이 가능한 Text
링크를 통해서 원하는 Text Page로 이동
2) HTTP Packet Layout
Ethernet IP TCP HTTP Data
상호간 신뢰성 확인(3-Way Handshaking)
Packet 분석 - Wireshark (Packet 읽는 연습)
- Request packet 분석
Request Line GET / HTTP/1.1\r\n
요청방식(Method) / url 원래는 주소가 나오지만 없다면 header에 host에 요청 / 버전 / 개행(\r\n)
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
application/x-shockwave-flash, */*\r\n
*/* (모든형식을 뜻함), q 파라미터는 우선 순위를 뜻함
Accept-Language: ko\r\n
Header Accept-Encoding: gzip, deflate\r\n
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n
(웹브라우저 정보)
Host: 192.168.1.20\r\n
Connection: Keep-Alive\r\n
Blank \r\n
Body
(Body 부 내용이 없음)
- Response Packet 분석
Status Line HTTP/1.1 200 OK\r\n
200 (상태 코드 : 정상) / 404 (Not Found)
Server: Microsoft-IIS/5.0\r\n
(어떤 웹서버를 쓰고 있는가 및 버전)
Date: Wed, 08 Jun 2022 05:40:38 GMT\r\n
Header Content-Length: 865\r\n
(Body Contents 길이)
Content-Type: text/html\r\n
Set-Cookie: ASPSESSIONIDASRDRDBA=KANNGPAAHGLGEDBPHMJGOLFO; path=/\r\n
(Cookie 관련 된 것 나중에 볼 것)
Cache-control: private\r\n
(Cache의 사용 여부, 종류)
Blank \r\n
Body Line-based text data: text/html
와이어샤크는 현직에서 많이 쓰는 툴이므로 따로 사용법 및 패킷을 읽어내는 방법에 대해서
심도 있게 공부 할 필요가 있다.
3) TCP 기반의 프로토콜 - 3way Handshaking 선행
4) TCP 기반의 프로토콜임에도
Stateless 방식 - client 요청에 따른 server 응답이 완료되면 session이 끊어짐
server는 무수히 많은 client의 요청을 처리해야하기 때문
* cookie - 지속적인 연결이 필요한 서비스에서 사용하기 위한 기능
5) HTTP의 버전
HTTP 1.1 추가된 사항
- 지속적인 연결
6) HTTP Request / Response 구조
7) HTTP Request
Method - get, post, options
2. Web Language
https://archive.org/ 과거 웹사이트 모습을 확인하고 소스를 볼 수 있다
WEB Language (PHP, JSP) 따로 공부할 것
HTML (Hypertext Markup Language)
HTML은 태그를 사용
HTML의 한계
- 링크 메커니즘을 약하다
- HTML은 데이터의 교환에는 부적합함
- 재사용할 수 없다
- 확장할 수 없다
xml, jsp, php을 활용
CSS (Client Side Script)
JavaScript
VBScript
Jscript
SSS (Server Side Script)
ASP
ASP.NET (C#, VBScript)
PHP
JSP
'Web Hacking' 카테고리의 다른 글
5. Web Authentication(웹 인증) (1) | 2022.06.15 |
---|---|
4. Encoding Schema (1) | 2022.06.15 |
3. HTML GET/POST method 차이 패킷 분석 (1) | 2022.06.14 |
2. Burp Suite / Paros 을 이용한 패킷 위변조 (0) | 2022.06.11 |
0. 웹 해킹 가상화 실습 환경 구성 (2) | 2022.06.11 |
댓글