본문 바로가기
about Security/웹보안과 해킹

[웹해킹 실습] # 민감한 데이터 노출 (개념 + 실습)

by saniii 2020. 11. 22.

# 민감한 데이터 노출

 

+ 민감한 데이터의 종류

- 각종 개인 정보

- 패스워드, 세션ID, 세션 토큰 등 로그인에 사용되는 정보

- 업무상 기밀 등 비공개로 관리되는 정보

 

+ 민감한 데이터가 노출되는 경우

- 데이터를 HTTP프로토콜로 전송하는 경우

- 데이터가 평문으로 저장되는 경우

- 안전하지 않은 암호화 방식을 사용할 경우

 

 

 

+ HTTP 프로토콜에 의한 노출

 

HTTP 프로토콜로 전달되는 요청과 응답 메시지는 네트워크 스니핑에 의해 도청될 수 있다.

 

* 네트워크 스니핑 : 네트워크에 전송되는 데이터를 모니터링하는 기술

- 네트워크 스니핑 프로그램 : tcpdump, wireshark ….


[ tcpdump를 이용한 실습 ]

이 명령어를 터미널에서 실행하여

eth1 네트워크 인터페이스를 통해 전달되는 요청메시지와 응답메시지 중

TCP 포트 80번과 관련된 내용만 표시하도록 할 수 있다.

 

 

위 명령어를 실행한 후 bWAPP로 이동 

 

 

 

+ 웹 스토리지를 통한 노출 실습

 

*web storage : 웹 애플리케이션이 사용자의 웹 브라우저에 데이터를 저장할 수 있는 기능

- 더 큰 데이터를 저장할 수 있다.

- 꼭 필요한 데이터가 아니면 매번 서버로 전달하지 않아도 된다.

!! 웹 스토리지에 저장된 데이터는 자바스크립트로 읽을 수 있으므로 보안에 더 집중해야 한다.

 

* 웹 스토리지의 종류 : 세션 스토리지, 로컬 스토리지

- 세션 스토리지:세션이 종료될 때 데이터도 함께 삭제된다.

- 로컬 스토리지:세션이 종료되어도 데이터가 남아 있으며 삭제요청을 해야 삭제된다.

 

 

 

 

`

 

 

<script>alert(‘secret : ‘+localStorage.getItem(‘secret’))</script> 입력

 

 

 

 

 

+ 평문으로 된 패스워드 노출 실습

 

항목 A6에 있다.

 

 

 

+ base64 인코딩 실습

 

? base64 인코딩 : 이진 데이터를 아스키 텍스트 문자열로 변환하는 방법

? 방법 : 각각 8bit로 구성된 3개의 byte6bi씩 쪼개어 4개로 나눈다.

- base64 디코딩은 인코딩의 역이므로 쉽게 원래의 문자열을 알아낼 수 있다.

 

 

 

+ 대응 방안

 

- HTTPS 프로토콜 :

: 웹 브라우저와 웹 서버 간 보안 통신 구현한 HTTPS를 이용하여 로그인과 같은 민감한 기능

시 데이터가 암호화되어 전송되도록 구현

 

- 웹 스토리지 보호 대책

: 민감한 데이터를 전달받는 경우 httponly 태그를 추가한 쿠키를 이용

 

- 검증된 암호화 사용 : 민감한 데이터를 저장 시, 적절한 암호 기법으로 암호화하여 저장

 

 

 

 

댓글