.NET MVC上传绕过解析ascx

老树开新花,谈一谈如何让ascx用户文件在MVC框架下顺利解析执行,在高版本的.NET FrameWork里默认已经拒绝直接通过url访问ascx执行代码。.

.NET MVC上传绕过解析ascx

所以要曲线救国的方法让ascx执行,所以MVC被派上了用场,MVC里的控制器对应的每个方法都有一个视图页,默认位于Views目录下,星主建了一个Test方法,并没有建对应的视图页(MVC默认的视图是新建cshtml扩展名),访问后抛出视图页没找到的异常,仔细观察MVC会按优先级顺序自动去找aspx -> ascx -> cshtml 扩展名文件

.NET MVC上传绕过解析ascx

这就说明ascx被解析的优先级高于默认的cshtml,那自然就有了应用的场景,比如WAF拦截aspx,cshtml等扩展名,我们可以跨目录上传到views控制器目录下,webshell,我这是Test.ascx,继承System.Web.Mvc.ViewUserControl,Webshell代码实现如下

.NET MVC上传绕过解析ascx

名称和控制器里的Test方法名保持一致,MVC会优先解析ascx文件,如图

.NET MVC上传绕过解析ascx

文章相关的工具附件已打包在星球,师傅们可以加入后自取。

.NET MVC上传绕过解析ascx