-
모의해킹의 여덟 번째 민감한 데이터 노출웹 해킹 2021. 3. 18. 22:01
민감한 데이터에 포함되는 것들은 각종 개인정보, 로그인에 사용되는 정보, 업무상 기밀등 비공개로 관리되는 정보이다. 민감한 데이터 노출 리스크는 HTTP 프로토콜을 사용하여 전송되는 경우, 평문으로 저장되는 경우, 안전하지 않은 암호화 방식을 사용하는 경우에 발생한다.
네트워크 스니핑은 네트워크의 데이터들을 모니터링하는 기술이다. 네트워크 스니핑 프로그램 중 tcpdump와 와이어샤크가 있다.
tcpdump 프로그램을 이용하여 HTTP 프로토콜로 전송되는 사용자 계정 정보를 확인하겠다.
위 명령어를 실행해둔 채로 bWAPP의 clear Text HTTP 메뉴로 가서 로그인한다.
웹 스토리지 기능은 웹 애플리케이션이 사용자의 웹 브라우저에 데이터를 저장할 수 있는 기능이다.
웹 스토리지 중 로컬 스토리지에 저장된 데이터를 읽는 실습을 하겠다.
웹 스토리지에 저장된 정보는 개발자 도구 F12의 Storage 탭에 있다.
로컬 스토리지에 저장된 정보는 웹사이트 어딘가에 크로스 사이트 스크립팅 취약점이 존재하는 경우 접근이 가능하다.
크로스 사이트 스크립팅 공격을 시도해보기 위해 A3의 Cross Site Scripting - Reflected 메뉴로 가겠다.
크로스 사이트 스크립팅 공격으로 로컬 스토리지 데이터에 접근할 수 있다는 것을 확인했다.
이번에는 평문으로 된 패스워드 노출 실습을 하겠다.
보안이 고려된 사이트의 경우 패스워드 분실 신고를 하면, 임시로 사용할 수 있는 패스워드를 발급하여 주거나, 패스워드를 초기화 할 수 있는 방법을 제공한다.
bWAPP의 Tet Files(Accounts) 메뉴에 가겠다.
사용자의 정보를 관리하는 파일의 내용을 확인할 수 있고, 이렇게 패스워드가 평문으로 노출되고 있다.
Base64 인코딩이랑 이진 데이터를 아스키 텍스트 문자열로 변환하는 방법을 말한다. 대표적으로 전자우편이나 HTTP 메세지를 전송할 때 사용하는데 파일 전송과 같이 바이너리 데이터를 전송할 때 Base64 인코딩하여 전송한다.
Base64 인코딩 실습을 하겠다. bWAPP에 Base64 Encoding (Secret) 메뉴에 간다.
Base64 인코딩이 된 쿠키를 디코더한다.
%2F는 /가 URL 인코딩이 된 것이여서 /로 변경하고 디코딩을해주면 secret 쿠키 값이 나온다.
Base64는 암호화가 아니라 인코딩 방식이다. 암호화와 혼돈하면 안된다.
민감한 데이터 노출 대응 방안에 대해 알아보겠다.
- HTTP 프로토콜로 전달되는 데이터는 공격자에게 쉽게 노출될 위험이 있기 때문에, 로그인과 같은 중요한 기능은 HTTPS 프로토콜을 이용하여 데이터가 암호화되어 전송되도록 구현해야 한다.
(HTTP/HTTPS가 같이 사용되도록 구현된 사이트의 경우 HTTPS에서 HTTP로 전환될 때 민감한 데이터가 전송되지 않도록 주의한다.)
- 민감한 데이터를 클라이언트로부터 전달받아야 하는 경우에는, 데이터를 쿠키를 통해 전달되도록 하고 해당 쿠키에 HttpOnly 플래그를 추가해야한다. 이렇게 하면 자바스크립트로 쿠키를 읽지 못한다.
- 민감한 데이터를 저장할 때에는 데이터를 암호화하여 저장한다.(검증된 암호화 사용)
위 글은 화이트 해커를 위한 웹 해킹의 기술을 참고했습니다.
'웹 해킹' 카테고리의 다른 글
모의해킹의 열 번째 XXE 공격 (0) 2021.03.22 모의해킹의 아홉 번째 접근 통제 취약점 공격 (0) 2021.03.19 모의해킹의 일곱 번째 파일 공격 (0) 2021.03.17 모의해킹의 여섯 번째 CSRF 공격 (0) 2021.03.16 모의해킹의 다섯 번째 XSS 공격 (0) 2021.03.15