🐞 CVE-2023-32571 - System.Linq.Dynamic.Core 远程代码执行
CVE-2023-32571的概念验证,这是System.Linq.Dynamic.Core(1.0.7.10至1.2.25版本)中的一个远程代码执行漏洞。当解析包含Where、Select、OrderBy等方法的不受信任输入时,该漏洞允许攻击者执行任意代码和命令。
⚠️ 免责声明
此工具仅用于教育和授权测试目的。未经事先相互同意使用此工具攻击目标是非法的。开发人员不承担任何责任,也不对此程序的任何误用或造成的损害负责。
🎯 先决条件
- .NET 9.0 SDK 或更高版本
- 使用易受攻击版本System.Linq.Dynamic.Core(1.0.7.10至1.2.25)的目标应用程序
- 用于观察回调的协作服务器(例如,Burp Collaborator,Interactsh)
🛠️ 构建项目
- 构建项目:
构建将产生
1dotnet build --configuration Release- 有效负载DLL位于
Payload/bin/Release/netstandard2.0/Payload.dll - 有效负载生成器位于
Generator/bin/Release/net9.0/Generator.dll
- 有效负载DLL位于
🚀 使用方法
模式
该工具支持两种模式:
- AssemblyLoad(模式0):加载并执行自定义.NET程序集
- ProcessStart(模式1):通过Process.Start直接执行系统命令
模式0:AssemblyLoad(默认)
|
|
|
|
模式1:ProcessStart(直接命令执行)
|
|
⚙️ 参数
--mode:利用模式(0=AssemblyLoad,1=ProcessStart)--file:要加载的.NET程序集路径(AssemblyLoad模式必需)--type:要实例化的完全限定类型名称(AssemblyLoad模式必需)--parameters:基于模式的参数:- AssemblyLoad:构造函数参数(逗号分隔)
- ProcessStart:要执行的命令(例如’cmd.exe /c whoami’或’bash -c whoami’)
--encoding:AssemblyLoad模式的编码方法(0=Hex,1=Base64)