■ PHP 8.x 환경 (가장 위험한 케이스)
- 필수 조건: session.upload_progress.enabled = On (PHP 기본값)
- 공격 메커니즘:
별도의 서브 취약점(LFI 등)이나 서버 내 파일 생성이 전혀 필요 없습니다. PHP 8의 구조적 특징을 악용하여, 특수하게 조작된 단 한 번의 파일 업로드(Multipart POST) 요청만으로 PHP 프로세스 메모리 상에서 즉시 원격 명령어가 실행(Pure Memory RCE)됩니다. 파일 흔적이 남지 않아 탐지가 매우 까다롭습니다.
■ PHP 7.x 환경 (구버전 운영 환경)
- 필수 조건: session.upload_progress.enabled = On + 웹 소스 내 LFI(Local File Inclusion) 취약점 존재
- 공격 메커니즘:
현재 깃허브 등에 공개된 대다수의 PHP 7용 익스플로잇이 채택한 방식입니다. PHP 7은 메모리 구조상 단독 RCE가 어렵기 때문에, 공격자는 이 취약점을 이용해 '삭제되지 않는 악성 세션 임시 파일'을 서버 디스크에 강제로 남깁니다. 그 후 웹 애플리케이션 내에 존재하는 include()나 require() 같은 LFI 취약점을 이용해 해당 세션 파일을 강제로 로드해야만 최종 시스템 장악(RCE)이 완료됩니다. 즉, 소스 코드 내에 LFI 취약점이 없다면 익스플로잇이 실패할 확률이 높습니다.
■ PHP 5.x 환경 (5.4 이상 EOL 환경)
- 필수 조건: session.upload_progress.enabled = On + 세션 저장 경로 권한 미흡
- 공격 메커니즘:
세션 업로드 기능이 최초로 도입된 5.4 버전 이상부터 해당됩니다. 이 환경에서는 구형 역직렬화(Deserialization) 핸들러의 결함 및 취약한 세션 구조체와 결합됩니다. 메모리 보호 기법(ASLR 등)이 부재하거나 약한 구형 OS 및 인프라의 특성을 타깃으로 삼아 디스크 쓰기 권한을 오염시키는 형태로 공격이 진행됩니다.
8버전은 제일 위험합니다. 쉽게 가능합니다.
7버전은 LFI(Local File Inclusion) 도 있어야 하는데 솔직히 저게 가능허면 해당 이슈가 아니여도 벌써 당했습니다.
5버전은 조건은 많이 까다롭습니다.
참고하세요 ~
- 필수 조건: session.upload_progress.enabled = On (PHP 기본값)
- 공격 메커니즘:
별도의 서브 취약점(LFI 등)이나 서버 내 파일 생성이 전혀 필요 없습니다. PHP 8의 구조적 특징을 악용하여, 특수하게 조작된 단 한 번의 파일 업로드(Multipart POST) 요청만으로 PHP 프로세스 메모리 상에서 즉시 원격 명령어가 실행(Pure Memory RCE)됩니다. 파일 흔적이 남지 않아 탐지가 매우 까다롭습니다.
■ PHP 7.x 환경 (구버전 운영 환경)
- 필수 조건: session.upload_progress.enabled = On + 웹 소스 내 LFI(Local File Inclusion) 취약점 존재
- 공격 메커니즘:
현재 깃허브 등에 공개된 대다수의 PHP 7용 익스플로잇이 채택한 방식입니다. PHP 7은 메모리 구조상 단독 RCE가 어렵기 때문에, 공격자는 이 취약점을 이용해 '삭제되지 않는 악성 세션 임시 파일'을 서버 디스크에 강제로 남깁니다. 그 후 웹 애플리케이션 내에 존재하는 include()나 require() 같은 LFI 취약점을 이용해 해당 세션 파일을 강제로 로드해야만 최종 시스템 장악(RCE)이 완료됩니다. 즉, 소스 코드 내에 LFI 취약점이 없다면 익스플로잇이 실패할 확률이 높습니다.
■ PHP 5.x 환경 (5.4 이상 EOL 환경)
- 필수 조건: session.upload_progress.enabled = On + 세션 저장 경로 권한 미흡
- 공격 메커니즘:
세션 업로드 기능이 최초로 도입된 5.4 버전 이상부터 해당됩니다. 이 환경에서는 구형 역직렬화(Deserialization) 핸들러의 결함 및 취약한 세션 구조체와 결합됩니다. 메모리 보호 기법(ASLR 등)이 부재하거나 약한 구형 OS 및 인프라의 특성을 타깃으로 삼아 디스크 쓰기 권한을 오염시키는 형태로 공격이 진행됩니다.
8버전은 제일 위험합니다. 쉽게 가능합니다.
7버전은 LFI(Local File Inclusion) 도 있어야 하는데 솔직히 저게 가능허면 해당 이슈가 아니여도 벌써 당했습니다.
5버전은 조건은 많이 까다롭습니다.
참고하세요 ~
총 6명이 반응했습니다
|
댓글을 작성하시려면 로그인이 필요합니다.
댓글 6개
결론은 5버전이 가장 안전(?)히다는 역설적인 의미인가요?ㅎㅎ
아무튼 이놈의 AI없이도 잘 살아갈텐데 괜히 튀어 나와서 사람 힘들게 하네요.
AI 덕을 보는 사람도 많겠지만 손해보는 사람도 엄청날듯 합니다.
그것도 생존과 관련된 부분에서 AI가 원망스러운 사람도 많을것 같습니다.
그럼 해킹의 매력이 없습니다 ㅋ
털어도 한개만 털리니 해커들도 노동가치가 거의 0에 수렴합니다, ㅋㅋ
정보 감사합니다
어제 서버 PHP버전 다올리기도 올리고 session.upload_progress.enabled 이거 어차피 안쓰는거 다꺼버렸네요
대부분쓰는곳없으니 되도록이면 다끄는게 좋을듯합니다