본문 바로가기

동아리&학회 자료/웹해킹

1주차 Introduction of Webhacking

02. 웹 기초 지식

-Web Browser
 : 웹을 사용하기 위한 프로그램; HTTP를 사용해 인터넷상의 통신을 하고, 서버로부터 받은 다양한 리소스를 가공해서 사용자가 편리하게 웹을 사용할 수 있게 하는 도구.

-Web Resource
 : 웹에서 사용하는 콘텐츠; 클라이언트에 요청에 따라 서버의 리소스에 대해 요청을 수행해 주는것 URL은 웹 리소스를 가리키는 주소이며, 초기엔 파일의 실제 위치와 URL이 같았으나, 최근엔 추상화된 경로를 이용. 대표적인 웹 리소스는 다음과 같음
#HTML : 웹문서의 뼈대를 구축하는 마크업 언어
#CSS : HTML이 표시되는 방법을 정의하는 스타일 시트 언어
#JS : Client side script임, 페이지 내에서의 행위 설정

-URI(URL)
 : 리소스를 식별하기 위한 식별자. URL은 리소스의 위치를 나타내는 식별자, URL의 하위 개념. URI의 구성요소는 다음과 같음;
#Schema : 웹서버 접속시 어떤 프로토콜?
#Host : Authority의 일부, 웹 서버의 호스트 (서버주소)에 대한 정보를 가짐.
#Path : 접속할 웹 서버의 경로에 대한 정보를 가지고 있으며 '/' 문자로 구분.
#Query : 웹 서버에 전달하는 파라미터(추가정보). URI에서 '?'문자 뒤에붙음.
#Fragment : 메인 리소스 내에 존재하는 서브 리소스에 접근할 때, 이를 식별하기 위한 정보를 담고있음, '#'문자 뒤에 붙음

-Encoding
: 문자, 기호등의 정보,형태를 표준화, 보안의 목적으로 다른 형태, 형식으로 변환, 처리하는 것 또는 그 처리 방식을 말함. 이렇게 변환된 형태를 원래대로 되돌리는 것을 Decoding이라고 함.
대표적인 인코딩은 URL과 HTML이 있음.
#URL Encoding : 예약어(구분자)를 전송할 때 사용. 문법적으로 중요하기 때문에 인코딩 하여 사용, Ascii테이블에서 매칭되는 Hex값 앞에 '%'를 붙임
#HTML entity Encoding : Hex값 앞에 '&#x'를 붙이거나 Entity name을 사용
p.s Encoding vs Encryption
Encoding : 알고리즘 공개, 키 X. 모두가 원래 정보로 복원 O
Encryption : 양방향 암호 알고리즘. 동일한 알고리즘/유효한 키를 가지고 있어야 복원 가능.

- : Scheme중 Protocol에 해당, 평문전송, 이를 보완하기 위해 암호화한 HTTPS가 등장.

-HTTP Request/Response : 서버에 대한 요청과 그에대한 답변.

-Cookie : HTTP의 Connetionless 속성을 보완하고자 탄생, 사용자의 인증상태등을 유지하기 위한 목적. 단, 인증상태만을 보관하면 위험하니, 
Session등을 포함하는 편. 사용자의 웹 브라우저에 저장.

-Session : 서버에 데이터를 저장하기 위해 사용, 유추할 수 없는 랜덤한
문자열을 만들어 서버측에서 저장.

-Domain Name/Host Name
 : Host에는 Domain name이나 IP등이 있는데, IP는 네트워크상 통신이 이루어질 때 장치를 식별하기 위해 사용. 인간이 이를 편리하게 기억하기 위해 Domain name이 탄생. Domain name을 IP로 바꿔주는 서버가 Domain Name Server.

-웹 서버 어플리 케이션
#Web server : Http의 요청을 받고 해석해서 처리해준후, 응답하는 역할을 함.
#Web application : 사용자의 요청을 동적으로 해결하기 위한 어플리케이션, Web application language가 이를 구현하기 위해 사용.
#Database managemant system : 데이터베이스 내의 데이터 조회,수정,삽입을 용이하게 할 수 있도록 하는 서버 어플리케이션임. MySQL, MS-SQL등이 있음. DBSM은 SQL Query를 통해 제어, 만약 이것의 필터링을 통하지 않고 사용할 경우 SQL Injection공격에 노출


03. 웹 해킹 개요

-웹 해킹 개요
: '해킹'의 의미대로 본래 의도와는 다른 동작을 일으키거나, 주어진 권한 이상을 바탕으로 정보열람, 복제, 변경등이 웹에서 발생하는 것을 의미.

-웹 해킹 공격 벡터
: 사용자의 입력을 받고 웹사이트와 통신을 하는 Client-side에 대한 공격, 사용자의 요청을 처리하는 Server-side에 대한 공격으로 나뉨.
공격 대상에 따라 공격방식, 형태가 달라지며 공격을 통해 가능한 행위도 달라짐.
#Client-side attack : 서비스 사용자에 대한 공격. 웹 서버가 제공해주는 데이터가 공격자에 의해 변조되었을 경우 웹 브라우저에서 렌더되는 과정에서 취약점이 발생하는 경우가 대표적임.
#Server-side Attack : 서비스를 운용하는 서버에 대한 공격, 서버의 어플리케이션 코드, 다른 사용자의 정보유출, 서버 탈취등으로 이어질 수 있음, 서비스의 형태에 따라 가지는 특별한 공격 방법이 존재 할 수도 있음