본문 바로가기

Security/Study

181205 공부일지


해결한 문제

lol team이라는 의심스러운 팀이 있습니다. ~~

때로는 정답이 바로 나타나지만 때로는 가려져 있는 경우도 있다.

Defcon#21#1

 

 

배운 것

1. WireShark Follow TCP Stream

 

고급 기능 : http://sncap.tistory.com/750

 

TCP의 서비스는 연결 지향 서비스전이중 서비스스트림 데이터 서비스 총 3가지를 제공함

그중스트림 데이터 서비스에 대해 설명하자면

1) TCP는 상위 계층으로부터 데이터 스트림을 수신한 후세그먼트라고 하는 적절한 패킷 단위로 스트림을 나눔

2) 세그먼트들은 네트워크를 통해 전송되어 목적지 TCP에 의해 재조립됨

3) 스트림 전달을 위해서 송신과 수신 TCP는 버퍼를 이용함

 

TCP에 대한 자세한 설명 :

https://m.blog.naver.com/PostView.nhn?blogId=itexpert2007&logNo=30027739473&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F

 

버퍼란?

데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리 영역

 

스트림이란?

데이터 관점에서 스트림(Stream)이란데이터패킷비트 등의 일련의 연속성을 갖는 흐름을 뜻함


 

패킷에서 마우스 오른쪽 버튼을 누르면 Follow TCP Stream 이 있음

 

빨간색 발신지 -> 목적지

파란색 목적지 -> 발신지

로의 트래픽을 확인할 수 있음

빨간 부분을 보면클라이언트가 웹 서버에 대한 연결을 시작하는 부분을 볼 수 있음

 

2. HTTP 프로토콜

HTTP는 HyperText Transfer Protocol의 약자로 인터넷 상에서 데이터를 주고받기 위한 서버/클라이언트 모델을 따르는 프로토콜애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동한다.

 

HTTP는 어느 종류의 데이터든지 전송할 수 있도록 설계되어있다. HTML뿐 만아니라 이미지동영상오디오텍스트 문서 등 종류를 가리지 않는다.

 

이름 그대로 하이퍼텍스트를 기반으로 데이터를 전송하겠다는 말이다간단히 말하면 링크기반으로 데이터에 접속하겠다는 의미이다.

 

 

작동방식

 

HTTP는 서버/클라이언트 모델 방식에 따르며 클라이언트 요청(request)를 보내면 서버는 요청을 처리해 응답(response)한다.

 

1. 클라이언트 :서버에 요청하는 클라이언트 소프트웨어가 설치된 컴퓨터. Chrome, IE 등 클라이언트 소프트웨어를 이용한다클라이언트는 URL을 이용해서 접속하고데이터를 요청할 수 있다.

 

2. 서버클라이언트의 요청을 받아서요청을 해석하고 응답을 하는 소프트웨어가 설치된 컴퓨터. Apache,IIS 서버소프트웨어다.

 

쿠키란?

Cookie는 클라이언트와 서버의 상태 정보를 담고 있는 정보의 조각아다로그인을 예를 들자면클라이언트가 로그인에 성공하면서버는 로그인 정보를 자신의 데이터베이스에 저장하고 동일한 값 Cookie형태로 클라이언트에 보낸다클라이언트는 다음번 요청 때 Cookie를 서버에 보내며 서버는 Cookie값으로 자신의 데이터베이스를 조회해 로그인 여부를 확인 할 수 있다.

 

 

HTTP에 대한 자세한 설명 :

1)

http://message0412.tistory.com/entry/HTTP-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B01

2)

http://message0412.tistory.com/entry/HTTP-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B02?category=606588

 

 

3. base 64

base64? 8bit binary data를 문자코드에 영향을 받지 않는 ASCII 코드 문자들로 바꾸는 인코딩 방식이다. Base64를 글자 그대로 번역하면 '64진법이라는 뜻임

 

64 = 2^6 이며, 2의 제곱수들에 기반한 진법들 중에서 화면에 표시되는 ASCII문자들을 써서 표현할 수 있는 가장 큰 진법이다.

 

Base64 왜 사용하는가??

플랫폼에 관계없이 독립성을 가진자료의 깨짐 현상을 방지하기 위해 사용되고,

HTML 파일 혹은 SQL 구문 안에 이진 데이터를 직접 쓸 수 없는 경우 base64로 데이터를 변환해서 사용한다.

 

base 64에 대한 자세한 설명 :

https://m.blog.naver.com/PostView.nhn?blogId=jihye2340&logNo=220615730393&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F

 

 

파이썬을 이용해 base 64 문자열 디코딩 하는 법

 

import base64

a = base64.b64dcode('내용‘)

print a

 

홈페이지를 이용해 디코딩 하는 법

-> http://www.convertstring.com/ko/EncodeDecode/Base64Decode  이용

 

 

4. 0x~~ 형식 or x~~형식은 16진수임

ex) 2진수 0000 0100 = 10진수 4 = 16진수 0x4 = 8진수 04

2진수 0000 1111 = 10진수 15 = 16진수 0x10 = 8진수 020

 






'Security > Study' 카테고리의 다른 글

2018.12.24 야간 보안 공부 - NAT  (0) 2018.12.23
2018.12.20 야간 보안 공부 - VPN  (0) 2018.12.21
181217 공부일지  (0) 2018.12.18
2018.12.16 야간 보안 공부(미완성) - SQL 인젝션  (0) 2018.12.15
카테고리 설명  (0) 2018.12.05