PHAR Deserialization Vulnerability
·
보안/웹
PHAR(PHP Archive) 구조PHAR 파일은 4가지의 구조로 이루어져있다. Stub작은 형태의 코드를 담을 수 있는 공간__HALT_COMPILER(); 코드가 있어야 PHAR 파일로 인식Stub을 지정하지 않으면 약 7KB 코드가 기본값으로 설정됨 Manifest해당 PHAR 내부 파일에 대한 메타데이터 저장setMeta(mixed $metadata) 함수를 통해 설정 가능 File ContentsPHAR 내 데이터 영역 Signature(Optional)PHAR에 대한 시그니처 그 중 PHAR Manifest의 각 파일에는 다음 정보가 포함되어 있으며 마지막 바이트 부분에서 직렬화 포맷을 사용하고 있다. 따라서, 공격자는 Manifest의 serialize 영역에 의도적인 PHP 객체 페이로드..
Dom Clobbering
·
보안/웹
Dom Clobbering이란?Dom Clobbering은 웹 보안에서 DOM 객체와 HTML 요소의 속성이 충돌하여 예상치 못한 동작을 유발하는 취약점이다. HTML 문서 내에서 요소의 id나 name 속성을 사용하면, 자바스크립트에서 해당 요소가 전역 객체의 속성으로 자동으로 등록된다. 이를 악용하면 기존의 전역 변수나 함수가 덮어 씌워져 보안 문제가 발생할 수 있다. 공격 방법DOM Clobbering 성공 여부를 확인하는 PoC 코드이다.더보기 HTML 요소에 id 속성을 부여하면, 해당 요소는 전역 객체(window)의 속성으로 자동으로 등록되어 전역에서 접근할 수 있다. 하지만, HTML에서 id는 문서 내에서 유일해야 하며 만약 중복된 id가 존재하게 되면 동작을 예측할 수 없게 된다. 반면..