.NET 异常过滤器实现虚拟WebShell
2022-10-17 09:13:37 Author: dotNet安全矩阵(查看原文) 阅读量:25 收藏

这几天稍微研究了下.NET MVC的全局异常处理以及捕获,相比.NET Web Form,.NET MVC的处理方式有所不同,以往是通过注册Global.asax文件中的Application_Error事件进行全局异常捕获,现在MVC可以使用强大的过滤器进行自定义错误的处理。本文作为学习笔记,将.NET MVC中已知的几种全局异常捕获及处理的思路进行整理和对比分析。

1.1 基本原理

.NET MVC为异常处理提供了一个HandleErrorAttribute特性,该特性主要捕获及处理由操作方法引发的异常,一般新建的项目都是默认全局注册,通过GlobalFilter全局过滤器注册了此特性,所以整个.NET MVC网站程序中所引发的异常默认都会被HandleError捕获到!打开项目中的Global.asax文件,可以看到默认调用了FilterConfig类对HandleError特性进行全局注册

using System.Web;using System.Web.Mvc;
namespace Test{ public class FilterConfig { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); } }}

1.2 HandleErrorAttribute

异常过滤器用来处理操作或结果执行期间可能抛出的异常。参与异常处理的操作过滤器需要实现IExceptionFilter接口。.NET MVC 框架只提供了一个异常过滤器:[HandleError],说到IExceptionFilter接口,就要提到上面所介绍的HandleError特性,可以从源码中看到HandleErrorAttribute就是实现了IExceptionFilter接口和FilterAttribute特性,但是HandleErrorAttribute作为默认提供的异常处理特性,有很多限制和不灵活的地方,比如不处理404,需要开启自定义错误,只能使用视图界面等。因此我们可以通过继承IExceptionFilter这个异常过滤接口,扩展和编写我们自己所需的处理流程。继承IExceptionFilter接口,需要实现void OnException(ExceptionContext filterContext)方法,通过方法中的ExceptionContext类参数,我们可以极为灵活的编写各种异常处理流程

笔者将改写OnException方法,方法内获取外部传入的base64数据,得到request对象后解码,另外为了具备命令执行后回显,使用StandardOutput.ReadToEnd读取命令执行后的所有返回数据,代码片段如下

效果实现如下 请求/Home/Error?content=tasklist正常触发,成功结果如下图

.NET MVC下还有很多这样的过滤器可以被用来实现虚拟Webshell,如果对这些技巧感兴趣的话可以多关注我们的博客、公众号dotNet安全矩阵以及星球,下一篇将继续分享 .NET相关的安全知识,请大伙继续关注。另外文章涉及的PDF和Demo以及工具已打包发布在星球,欢迎对.NET安全关注和关心的同学加入我们,在这里能遇到有情有义的小伙伴,大家聚在一起做一件有意义的事。

为了更好地应对基于.NET技术栈的风险识别和未知威胁,dotNet安全矩阵星球从创建以来一直聚焦于.NET领域的安全攻防技术,定位于高质量安全攻防星球社区,得到了许多师傅们的支持和信任,通过星球深度连接入圈的师傅们,一起推动.NET安全高质量的向前发展星球提供50元代金劵,师傅们先到先得噢!扫描星球亮点里的二维码即可加入我们。

星球汇聚了各行业安全攻防技术大咖,并且每日分享.NET安全技术干货以及交流解答各类技术等问题,社区中发布很多高质量的.NET安全资源,可以说市面上很少见,都是干货。其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等,后续还会倾力打造专刊、视频等配套学习资源,循序渐进的方式引导加深安全攻防技术提高以及岗位内推等等服务。

dotNet安全矩阵知识星球 — 聚焦于微软.NET安全技术,关注基于.NET衍生出的各种红蓝攻防对抗技术、分享内容不限于 .NET代码审计、 最新的.NET漏洞分析、反序列化漏洞研究、有趣的.NET安全Trick、.NET开源软件分享、. NET生态等热点话题、还可以获得阿里、蚂蚁、字节等大厂内推的机会


文章来源: http://mp.weixin.qq.com/s?__biz=MzUyOTc3NTQ5MA==&mid=2247486679&idx=1&sn=e4373261b64845353afb1d85f8dff9d4&chksm=fa5aa23acd2d2b2c5c722ece63ab840bfb3719d9d9c321e5cc9ef5ac87c2f6c8bb9ec291c95d#rd
如有侵权请联系:admin#unsafe.sh