.NET基于ActionFilter实现虚拟WebShell

ActionFilter动作过滤器在MVC环境下使用频率较多的过滤器,IActionFilter接口里有两个方法OnActionExecuting和OnActionExecuted,前者在动作方法执行前调用,后者在动作方法执行后调用.

namespace System.Web.Mvc{    public interface IActionFilter    {        void OnActionExecuted(ActionExecutedContext filterContext);        void OnActionExecuting(ActionExecutingContext filterContext);    }}

创建新的实现类MyActionAttribute用来继承接口,重写OnActionExecuting方法,方法内加入启动进程代码,demo如下

.NET基于ActionFilter实现虚拟WebShell

最后调用 GlobalFilterCollection注册到MVC全局中,在框架内任意位置均可以调用恶意代码,例如 http://localhost:62158/GhostWebshellofAction.aspx 访问注册后,请求/Home/Login?content=tasklist 返回命令执行结果

.NET基于ActionFilter实现虚拟WebShell