
CVE-2022-46169 (일명 Cacti 인증되지 않은 명령 주입)에 대한 간단한 PoC입니다. 이 취약점은 인증되지 않은 사용자가 Cacti 1.2.17부터 1.2.22까지의 버전을 실행하는 서버에서 임의의 코드를 실행할 수 있게 해줍니다.
Vulnhub의 Cacti 시나리오를 기반으로 한 간단한 PoC 각색입니다. 여기에서 확인할 수 있습니다.
Cacti는 전 세계 사용자를 위한 강력하고 확장 가능한 운영 모니터링 및 장애 관리 프레임워크입니다. 명령 주입 취약점으로 인해 인증되지 않은 사용자가 Cacti 1.2.17부터 1.2.22 이전 버전을 실행하는 서버에서 임의의 코드를 실행할 수 있습니다. 단, 모니터링 대상 장치에 대해 특정 데이터 소스가 선택되어 있어야 합니다.
참고 자료:
다음 명령을 실행하여 Cacti 서버 1.2.22를 시작하십시오:
# 환경 컴파일
docker compose build
# 환경 실행
docker compose up -d
서버가 시작된 후, http://localhost:8080에서 로그인 페이지를 볼 수 있습니다.
그런 다음 admin/admin으로 로그인하고 안내에 따라 애플리케이션을 초기화합니다. 실제로는 성공 페이지가 나타날 때까지 "다음 버튼"을 계속 클릭하면 됩니다.
이 취약점을 악용하기 전에 새로운 "Graph"를 추가해야 합니다. 명령 주입이 기본 그래프 유형에서 발생하지 않기 때문입니다:

그래프 유형 "Device - Uptime"을 선택하고 "Create" 버튼을 클릭합니다:

위 초기화를 완료한 후에는 공격자 역할로 전환됩니다. 다음 스크립트를 사용하여 Cacti 서버에 요청을 보내 명령 주입 공격을 트리거합니다:

응답에 명령 결과가 표시되지는 않지만 /tmp/test.txt 파일이 성공적으로 생성된 것을 확인할 수 있습니다:
