
CVE-2022-1329에 대한 개념 증명 익스플로잇으로, WordPress Elementor 3.6.0-3.6.2의 원격 코드 실행 취약점을 이용하며, Docker 기반 취약 환경과 사용자 정의 가능한 PHP 페이로드 주입을 포함합니다.
이 poc는 AkuCyberSec의 것을 기반으로 합니다.
docker-compose를 사용하여 취약 환경을 시작합니다:
docker-compose up -d
그런 다음 URL http://localhost:8000으로 WordPress 관리자 페이지에 접속할 수 있습니다.
관리자 사용자를 등록하고, Users 태그에서 no-admin 사용자를 추가합니다. 예를 들어, 두 명의 사용자가 있습니다:
| 사용자명 | 비밀번호 | 역할 |
|---|---|---|
| wc | 123456 | 관리자 |
| a2 | aaaaaa | 편집자 |
관리자 계정으로 로그인하고, 제공된 zip 파일을 사용하여 Elementor 3.6.1을 설치합니다.
업로드 크기 문제가 발생하면, 다음과 같이 php.ini를 /var/www/html/에 추가하고 도커 서버를 다시 시작하십시오:
upload_max_filesize = 64M
max_execution_time = 0
post_max_size = 150M
file_uploads = on
poc 스크립트를 no-admin 사용자 정보로 편집하고, 익스플로잇을 위해 poc 스크립트를 실행합니다:
python3 poc.py
참고: 스크립트가 업로드 문제로 실패할 수 있지만, 괜찮습니다. 브라우저에서 관리자 페이지를 새로고침하여 작동하는지 확인해보세요.
이 poc는 페이로드로 phpinfo();를 실행합니다. 물론 이를 편집할 수 있지만, 도커 컨테이너 내의 /var/www/html/wp-content/plugin/elementor-pro에서 elementor-pro 플러그인을 수동으로 제거해야 합니다:
# 압축 파일 풀기
unzip elementor-pro.zip
# 메인 파일을 편집하여 페이로드를 넣습니다. 파일의 시작 부분에 있습니다.
nano elementor-pro/elementor-pro.php
# 다시 압축
rm elementor-pro.zip; zip -ry elementor-pro.zip elementor-pro
# 다시 익스플로잇
python3 poc.py
