[Transport Layer] 신뢰적인 데이터 전송의 원리
·
CS/Computer Network
신뢰적인 데이터 전송을 구현하는 문제는 전송 계층 뿐만 아니라, 링크 계층과 애플리케이션 계층에서도 발생하는 문제이다. Some limitations of the channel채널이 불안정한 상황들drop msgsreorder msgs deliver duplicate copies of a given msgACK가 와야 도착했다고 생각 → 늦어지면 재전송 (delay가 길었을 경우)limit msgs to finite sizedeliver msgs often an arbitary long delay 신뢰적 데이터 전송Frame FormatReciver pkt number▷ piggy-backing : for reverse direction of data flow ARQ ProtocolAutomatic Re..
[Transport Layer] UDP (User Datagram Protocol)
·
CS/Computer Network
* Demultiplexing : extend the host-to-host delivery service to a process-to-process service 호스트에서 호스트로 전송하는 것을 넘어서, 프로세스에서 프로세스로 전송하게 해주는 서비스 세그먼트 구조port # : 포트 번호 목적지 호스트가 목적지 종단 시스템에서 동작하는 (역다중화 기능을 수행하는) 정확한 프로세스에게 애플리케이션 데이터를 넘기게 해줌 * 전송 계층에서는 헤더에 포트 번호 (프로세스의 위치)를 헤더에 붙여준다. 각 port 번호를 지칭하는 길이는 16bit 이므로 \(2^{16} = 64K = 65536\) 개의 포트가 사용 가능하다. Length : 길이헤더를 포함하는 UDP 세그먼트의 길이를 바이트 단위로 나타낸다...
SQL Injection
·
Hacking/Web Hacking
웹 사이트들은 사용자의 입력 값을 이용해 데이터베이스 접근을 위한 SQL Query를 생성한다.공격비정상적인 SQL Query를 이용한 공격사용자 인증을 비정상적으로 통과데이터베이스에 저장된 데이터를 임의로 열람데이터베이스의 시스템 명령을 이용하여 시스템 조작 웹 로그인 시 SQL문웹에서 사용자가 ID와 패스워드 입력창에 자신의 ID와 패스워드를 입력하면, 다음과 같은 SQL문이 작성되어, 데이터베이스에 전송 예시로 member라는 데이터 베이스가 있다고 가정하자.즉, 입력한 로그인과 비밀번호를 찾아서 데이터베이스에 정보가 존재하면 비교하는 코드가 필요하다SELECT user_idFROM memberWHERE user_id='입력된 아이디' AND user_pw='입력된 패스워드'형식으로 비교한다.  이..
Transport Layer 개요
·
CS/Computer Network
Transport Layer의 게층 프로토콜은 네트워크 라우터가 아니라 종단 시스템 (endsystem)에서 구현된다.송신 측 트랜스포트 계층은, 애플리케이션 계층으로부터 수신한 메시지를 트랜스포트 계층 패킷으로 변환 - segment트랜스포트 계층은 송신 종단 시스템에 있는 네트워크 계층으로 세그먼트를 전달수신측에서 네트워크 계층은 데이터그램으로부터 트랜스포트 계층으로 세그먼트를 전송트랜스포트 계층은 수신 애플리케이션에서 세그먼트 내부의 데이터를 이용할 수 있도록 수신한 세그먼트 처리* 네트워크 애플리케이션에서는 트랜스포트 계층 프로토콜을 사용 가능하다 ex) TCP, UDP Transport Layer vs Network LayerTransport LayerNetwork Layer각기 다른 호스트에서..
XSS
·
Hacking/Web Hacking
XSS (Cross Site Scripting)취약점웹페이지가 사용자에게 입력 받은 데이터를 필터링하지 않고 그대로 동적으로 생성된 웹페이지에 포함하여 사용자에게 재전송 시 발생클라이언트 측에서 실행되는 언어로 작성된 악성 스크립트 코드를 포함시켜 전달 (브라우저에서 실행)악성 스크립트 코드가 웹 브라우저에서 실행됨피해쿠키를 통한 웹 사용자 정보 추출과부화를 일으켜 서버를 다운시킴피싱 공격의 일종으로 활용 Cookie | 쿠기HTTP 프로토콜은 모든 요청 / 응답이 독립적으로 시행된다.따라서 HTTP 프로토콜은 사용자의 요청이 누구의 것인지 구분할 수 없다.어떤 페이지 접속 시 사용자의 인증 정보가 필요해지면서 해결하기 위해 만든 것이 쿠키이다.인증의 성공 여부 등의 정보를 초기 인터넷에서는 쿠키를 이용..
DNS (Domain Name System)
·
CS/Computer Network
호스트 이름 (hostname) : 인터넷 호스트의 식별자로 문자로 사람들이 알아보기 쉽도록 함 ex) www.google.comIP주소 (IP address) : 호스트가 인터넷의 어디에 위치하는지에 대한 자세한 정보를 제공해줌 DNSDNS translate hostnames to IP addresses호스트 이름을 IP 주소로 변환해주는 directory 서비스DNS 서버들의 계층구조로 구현된 분산 데이터 베이스이다.호스트가 분산 데이터 베이스로 질의하도록 허락하는 애플리케이션 계층 프로토콜이다DNS runs over UDP and uses port 53 : UDP로 수행되고 포트번호 53을 이용한다.  If one DNS server that contains all the mappings 만약, 하..
SMTP & FTP
·
CS/Computer Network
SMTP와 FTP 모두 TCP를 사용한다 (HTTP도)SMTPElectronic mail Components전자 메일의 Tree components user agent : mail reader - 사용자가 메세지를 읽기, 응답, 전달, 저장, 구성이 가능하게 함ex) Outlookmail server : mail box, message queue로 이루어져 있다.mail box contains incoming msgs : 수신자의 메세지를 유지 및 관리message queue for outgoing msgs : 송신할 때 메세지 전달 전 메세지 큐에 보관simple mail transfer protocol (SMTP) : 인터넷 전자 메일을 위한 주요 애플리케이션 계층 프로토콜 Electronic mai..
리버스 텔넷
·
Hacking/Network
파일 업로드에 대한 취약성이 있는 웹서버에 사용이 가능한 네트워크 해킹의 한 종류이다. (웹해킹이라고 볼 수도 있을까?)텔넷 (Telnet) 사용자가 서버에 원격 접속을 하기 위해서 사용텔넷을 이용하여 서버에 원격 접속 요청을 하면, 사용자 인증을 한 후 쉘을 사용함* 굉장히 취약하기 때문에 대부분 막혀있음     접근 보안일반적으로 웹 서버는 방화벽 내부에 존재웹 서버는 80번 포트를 이용한 웹 서비스만 제공방화벽은 외부 인터넷을 사용하는 사용자에 대해 80포트만 허용웹 서버의 텔넷이 열려있더라도 방화벽으로 인해 공격자가 외부에서 접근 불가만약, 텔넷으로 접속할 수 있다면, 웹 서버에서 바로 쉘을 제공해줄 것이다.하지만, 방화벽 등으로 인해 공격자가 텔넷으로 직접적으로 웹 서버에 접속할 수 없기에 서버..
취약점 & 정보 수집
·
Hacking/Web Hacking
웹 해킹의 목표웹 서버 : 웹 어플리케이션 호스팅, 운영체제 상에서 동작웹 서버의 파일 구조 및 시스템 파일에 접근 목적웹 어플리케이션 : 사용자와의 상호 작용을 위해 동작하는 프로그램권한 없이 수행하고자 하는 모든 종류의 공격이 목적, 웹 어플리케이션 취약성 이용웹 사용자 : 관리자 및 외부 클라이언트 사용자웹 사용자를 목표로 기술적인 사회공학적 해킹 목적 취약점 수집웹 사이트의 정보 수집ex) 구글 검색엔진을 이용하여 파일 구조를 알아내거나, 관리자 파일을 쉽게 접근 가능한 사이트들을 찾기es) 해당 사이트의 서버사이드 언어를 알아내고 이를 통해 OS를 알아냄홈페이지에서 게시판이나 자료실, 로그인 부분 포함 여부 확인ex) 로그인 부분이 제대로 구현이 안되어있을 수 있음홈페이지 파일의 확장자 확인해당..
웹 서비스
·
Web
HTMLHyper Text Markup Language가장 단순한 형태의 웹 언어웹 서버에 HTML 문서를 저장하고 있다가 클라이언트가 특정 HTML 페이지를 요청하면 해당 HTML 문서를 클라이언트로 전송정적인 웹 페이지클라이언트의 웹 브라우저를 통해 웹 서버의 무엇인가를 바꿀 수 있는 가능성이 매우 낮기 때문에 웹을 이용한 공격이 매우 어려움SSS (Server Side Script)ASP (Active Server Page), JSP (Java Script Pages), php 등으로 개발동적인 페이지 제공ASP 또는 JSP의 확장자를 가진 웹 문서를 요청처리 결과를 HTML 파일로 만들어 클라이언트에 전송완벽하게 HTML로 완성된 페이지를 받음CSS (Client Side Script)자바스크립트..