728x90 전체 글103 직렬화 & 역직렬화 취약점 직렬화란? Java에서의 직렬화 : 객체를 전송 가능한 형태로 만드는 것. 객체들의 데이터를 연속적인 데이터로 변형하여 stream을 통해 데이터를 읽도록 한다. 주로 객체들을 통째로 파일로 저장하거나 전송하고 싶을 때 사용 - 특정 클래스의 인스턴스 상태를 다른 서버로 전달하기 위해 JVM(JAva Virtual Machine) 메모리 상에서 실행되고 있는 인스턴스 정보를 바이트 코드로 복사하는 과정을 의미 - Java에서 객체를 생성 => 해당 객체는 메모리에 상주, 프로그램 실행 동안 필요에 따라 사용됨 => 프로그램이 종료되면 메모리에 있던 객체 사라짐 - 프로그램 사용하며 저장된 데이터를 재사용해야하는 경우 => 직렬화 과정 후 저장 - 객체 데이터를 네트워크를 통해 전송해야하는 경우 => 직렬.. 2022. 2. 23. Insecure Deserialization [ 이론 ] Concept 이 단원에서는 직렬화가 무엇이며 개발자의 원래 의도가 아닌 작업을 수행하기 위해 어떻게 조작할 수 있는지 설명한다. Goals - 사용자는 Java 프로그래밍 언어를 기본적으로 이해해야한다. - 사용자가 안전하지 않은 역직렬화 취약성을 탐지할 수 있다. - 사용자는 안전하지 않은 역직렬화 취약성을 이용할 수 있다. - 역직렬화를 이용하는 것은 PHP나 Python과 같은 다른 프로그래밍 언어에서는 약간 다르지만 여기서 학습된 주요 개념들은 모든 것에도 적용된다. What is Serialization 직렬화는 일부 개체를 나중에 복원할 수 있는 데이터 형식으로 변환하는 프로세스이다. 사람들은 종종 스토리지에 저장하거나 통신의 일부로 보내기 위해 객체를 직렬화한다. Deseria.. 2022. 2. 23. http Header HTTP Header - HTTP body에 대한 정보를 말해준다. - 해당 메시지가 제공하는 기능에 대한 최소한의 정보가 정리된 요약본 - 헤더에 불필요한 내용을 담으면 속도가 저하되기 때문에 꼭 필요한 내용만 담고 모든 기능을 표현해야 함. Header의 구성 1) General Header - 컨텐츠 정보 < 요청/응답에 대한 일반적인 정보 (날짜 및 시간 등) Date : 현재시간 (Sat, 23 Mat 2019 GMT) Pragma : 캐시제어 (no-cache), HTTP/1.0에서 쓰던 것으로 HTTP/1.1에서는 Cache-Control이 쓰인다. Cache-Control : 캐시 제어 + no-cache : 모든 캐시를 쓰기 전에 서버에 해당 캐시를 사용해도 되는지 확인하겠다. + pub.. 2022. 2. 23. Missing Function Level Access Control - 3 [ 이론 ] Missing Function Level Access Control 기능 level 접근 제어 누락 출력 인코딩으로 XSS를 방지하는 것과 같은 액세스 제어는 유지 관리가 까다로울 수 있다. 전체 응용프로그램에서 적절하게 적용되도록 보장해야하므로 모든 방법/function에서 적용해야한다. IDOR vs Missing Function Level Access Control 많은 사람들이 Function Level 접근 제어와 IDOR를 '접근 통제' 하나로 표현한다. 둘 사이 차이점을 말해보겠다. 가장 구별되는 차이점은 IDOR은 접근통제가 '수평적'이나 '측면적'에 가깝고 Missing Function Level Access는 '기능성 노출'이라는 것이다. 여기서 IDOR 강의에서 기능이 어.. 2022. 2. 22. 이전 1 ··· 5 6 7 8 9 10 11 ··· 26 다음 728x90