首页 新闻 搜索 专区 学院

好吧,发现asp.net临时目录还是有写入权限,而且有便利目录的权限,这样怎能安全?

0
[待解决问题]

说明:

如果网站潜藏的有木马,如果网站是 asp.net 的网站,如果服务器是windows server

这个目录是可以直接访问并写入的

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files

 

具体代码如下:

创建一个 test.ashx 写入以下代码

using System;
using System.Web;
using System.Collections.Generic;
public class testreadwrite : IHttpHandler
{
    HttpRequest Request;
    HttpResponse Response;
    public void ProcessRequest(HttpContext context)
    {
        Request = context.Request;
        Response = context.Response;
        Response.ContentType = "text/plain";        
        
        string temppath = @"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\test.txt";
        
        System.IO.File.AppendAllText(temppath,"123");
        
        Response.Write(System.IO.File.ReadAllText(temppath));    
      
    }


    public bool IsReusable
    {
        get
        {
            return false;
        }
    }

}

 

 

 

问题补充:

我已经设置网站为 ApplicationPoolIdentity 用户运行 

如图:

 

网站根目录权限如图:

参考这里

如果应用程序池选择的是 ApplicationPoolIdentity , 这个账户的权限很低, 只属于 IIS_IUSRS 用户组, 甚至不属于 Users 用户组, 而应用程序又需要访问本地文件系统 (比如日志输出) , 就需要为 ApplicationPoolIdentity 账户设置 NTFS 权限, 这个账户在安全对话框是找不到的, 只能手工输入 IIS APPPOOL\{app pool name} 进行设置。

 

http://www.cnblogs.com/beginor/archive/2012/03/26/2418403.html

 

 

 

fun5的主页 fun5 | 初学一级 | 园豆:4
提问于:2014-12-05 15:25
< >
分享
所有回答(1)
0

关于你出的代码, 这个aspx都已经能到你服务器上了, 你哪个文件夹都不会安全。 

 Temporary ASP.NET Files这个目录是临时文件夹, 当.net编译时会产生一些文件到这里面。 这是必须的。 它需要编译的。 不是解释型。 

而且如果你要开gzip,gzip的临时文件夹也会要有写入权限。 因为必须要写入。 

关于权限, 只指定NETWORK SERVICE,IUSER_XXX,ASPNET的可写权限

问天何必 | 园豆:3311 (老鸟四级) | 2014-12-05 17:12

我们网站之前中木马,确实是有人把木马藏在 gzip 临时文件夹里面替换了我们正常的文件

这样的话,如果是虚拟主机  我自己购买一个asp.net 的虚拟主机

自己是不是直接可以写它的 Temporary ASP.NET Files 这个目录?

 

 

 

支持(0) 反对(0) fun5 | 园豆:4 (初学一级) | 2014-12-05 20:44

@foxidea: 应该是主机中标了.  gzip临时文件夹是用户访问你网站的页面时才产生压缩过的内容. 由iis产生, 别人上传怎么可能写在这个目录里... 写了也没什么意思,  权当用户下载木马文件.  

支持(0) 反对(0) 问天何必 | 园豆:3311 (老鸟四级) | 2014-12-07 15:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册