본문 바로가기
보안

Chapter 13. 민감한 데이터 노출

qbang 2019. 3. 4.

Chapter 13. 민감한 데이터 노출

HTTP 프로토콜에 의한 노출

 

- eth1 네트워크 인터페이스를 통해 전달되는 요청 메시지와 응답 메시지 중 tcp 80 포트와 관련된 내용만 표시

 

- bWAPP > Clear Text HTTP(Credentials)의 로그인 창에 bee/bug를 입력하면 스니핑 됨

 

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

 

- Bwapp > HTML5 Web Storage(Secret)에서 개발자 도구를 통해 웹 스토리지 접근, XSS 취약점이 있으면 알아낼 수 있음

<script>alert('secret: '+ localStorage.getItem('secret'))</script>

 

- Bwapp > XSS Reflected(GET) 메뉴를 선택하고 First name에 위 코드 입력, localStorage.getItem()을 이용하면 로컬스토리지에 저장되어 있는 내용을 읽을 수 있음

 

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

- 보안이 고려된 사이트의 경우 패스워드 분실 신고를 하면, 임시로 사용할 수 있는 패스워드를 발급하여 주거나, 패스워드를 초기화할 수 있는 방법을 제공함

 

 

- Text Fils(Accounts)에 추가하고자 하는 계정을 입력하고 다운로드 링크를 누르면 사용자 정보를 관리하는 파일의 내용을 확인할 수 있음

 

Base64 인코딩

- Base64 인코딩이란 이진 데이터를 아스키 텍스트 문자열로 변환하는 방법, 전자우편이나 http 메시지를 전송할 때 사용하는데, 파일 전송과 같이 텍스트로 표현할 수 없는 바이너리 데이터를 전송할 때 사용

 

- 터미널에서 Base64 인코딩/디코딩을 할 수 있는데 -d 옵션을 붙이면 디코딩이고 빼고 실행하면 인코딩

 

 

- Bwapp > Base64 Encoding(secret) 페이지 프록시키고 새로고침하면 버프 수트에서 secret 쿠키 볼 수 있음, 디코딩 ㄱ

 

 

- 이때 문자열 맨 뒤 %2F/URL 인코딩된 것이므로 맨 뒤를 /로 변경해주고 디코딩

 

민감한 데이터 노출 대응 방안

1       HTTP 프로토콜

HTTP 프로토콜로 전달되는 데이터는 공격자에게 쉽게 노출될 위험이 있기 때문에, 로그인과 같은 중요한 기능은 HTTPS 프로토콜을 이용하여 데이터가 암호화되어 전송되도록 구현해야 함

(HTTP/HTTPS가 같이 사용되도록 구현된 사이트의 경우 HTTPS에서 HTTP로 전환될 때 민감한 데이터가 전송되지 않도록 주의)

2       웹 스토리지 보호 대책

민감한 데이터를 클라이언트로부터 전달받아야 하는 경우에는, 데이터를 쿠키를 통해 전달되도록 하고 해당 쿠키에 HTTPSONLY 플래그를 추가해야 함 -> 자바스크립트로 해당 쿠키를 읽지 못함

3       검증된 암호화 사용

민감한 데이터를 저장할 때에는 데이터를 암호화하여 저장

 

 

해당 포스팅은 '화이트해커를 위한 웹 해킹의 기술' 책 내용을 바탕으로 작성되었습니다.

'보안' 카테고리의 다른 글

Chapter 15. XXE 공격  (0) 2019.03.14
Chapter 14. 접근 통제 취약점 공격  (0) 2019.03.05
Chapter 12. 파일 업로드 공격  (0) 2019.03.03
Chapter 11. 파일 인클루전 공격  (0) 2019.03.03
Chapter 10. XSS 요청 변조(CSRF) 공격  (0) 2019.03.01

댓글