某测试端口的.net-Web功能到GetShell

admin 2022年6月18日10:05:02评论73 views字数 1910阅读6分22秒阅读模式

0x01 前言

项目中碰到了一个端口存在目录遍历,比较运气的是泄漏了ASP.NET的obj目录,最终找到了Web功能模块的DLL,实现了未授权的文件上传GetShell


0x02 过程

在发现了这个端口存在目录遍历的时候,尝试访问页面发现了当前目录是一个CSharp的工程项目。可以看到比较清晰的目录结构。

某测试端口的.net-Web功能到GetShell

2019/5/20    19:33        <dir> bin
2018/6/20    13:42          115 FileUpload.aspx
2019/5/21    15:36        2832 FileUpload.aspx.cs
2018/6/20    13:42          455 FileUpload.aspx.designer.cs
2018/6/20    13:42         7506 FileUpload.csproj
2018/8/29     9:57         255 FileUpload.csproj.user
2018/6/20    13:42         257 FileUpload.csproj.vspscc
2021/10/22    13:54        <dir> FileUploader
2018/6/20    14:32        <dir> obj
2018/6/20    13:42          321 packages.config
2018/6/20    13:42        <dir> Properties
2022/3/1    18:14        <dir> UpLoadFile
2021/9/10     9:11         1528 Web.config
2018/6/20    13:42         1246 Web.Debug.config
2018/6/20    13:42         1307 Web.Release.config

如果直接访问FileUpload.aspx并不能得到除了物理路径之外有效的信息。

某测试端口的.net-Web功能到GetShell

如果了解ASP.NET的项目目录结构,就会知道,obj和bin是csharp项目的两个重要的配置目录,可能包含了项目的编译后链接库文件,或者pdb等信息。

1. ASP.NET的某些基本目录结构

目录 说明
obj obj 目录包括项目运行需要引用的一些类、方法和接口
bin bin 目录是项目程序目录,包括运行时配置文件等等

直接访问bin,这里被限制了访问。

某测试端口的.net-Web功能到GetShell

而访问obj目录,就找到了一个FileUpload.dll。与FileUpload.aspx同名。那么就大概率是他的动态链接库,csharp的文件可以直接反编译看到源码,这样我们直接审计存不存在漏洞。

某测试端口的.net-Web功能到GetShell

2.dnSpy反编译加审计

通过导入dnSpy,直接看到功能模块源码,在FileUpload类,看到三个可控的参数ExtName、ExtName、DicName。

某测试端口的.net-Web功能到GetShell

在关键代码第51行,第54行,也可以看到直接构造文件上传表单,在text5的目录下,直接保存文件,整个过程也没有鉴权,可以直接未授权构造文件上传。

而ExtName传入给text2,最后是我们可控的文件后缀名,最终可以直接上传aspx马。

某测试端口的.net-Web功能到GetShell

某测试端口的.net-Web功能到GetShell

3.测试

这里直接构造了请求表单。

<html>
  <body>
    <form action="http://xxxxxxxxxxx/FileUpload.aspx?ExtName=aspx&CorpId=1&DicName=1" method="post"  enctype="multipart/form-data">
      <input type="file" name="file" />
      <input type="submit" ></input>
  </body>
</html>

某测试端口的.net-Web功能到GetShell

成功。


0x03 总结

这里其实挺简单的。就是简单的信息收集到简单的代码审计,到getshell,主要记录下ASP.NET的目录信息泄露。

内容来源:

https://k-9.me/2022/03/20/%E6%9F%90%E6%B5%8B%E8%AF%95%E7%AB%AF%E5%8F%A3%E7%9A%84-net-Web-Demo-%E5%8A%9F%E8%83%BD%E5%88%B0GetShell/

往期推荐 

// 1

一次redis未授权写入攻击以及RCE 学习

// 2

配置reGeorg+Proxifier渗透内网

// 3

[CTF记录_强网杯 2019]随便注(三种方法)

// 4

| 代码审计VauditDemo程序到exp编写

原文始发于微信公众号(雾晓安全):某测试端口的.net-Web功能到GetShell

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月18日10:05:02
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   某测试端口的.net-Web功能到GetShellhttp://cn-sec.com/archives/1126213.html

发表评论

匿名网友 填写信息