求: 遍历指定目录下的所有根目录、并判断目录权限的程序..如需报酬,可联系我QQ. 用try语句写入目录一个空文本文件,如果能够写入, 就删除该文件了之后返回true.否则返回false. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 嗯,感谢。我知道原理,但是无法写出一串串代码。我是做delphi程序开发的. 希望您能帮忙写完整的代码. 可直接使用. 报酬可加我QQ谈. 服务器为虚拟主机,网站漏洞不重要。主要是上传了aspx恶意木马后, 找到可写可执行目录后, 就可以执行系统命令了. 非常感谢您,kkabc.! 随便新建一个页面. 之后再page_load里面加上这样代码就可以了. protected void Page_Load(object sender, EventArgs e) { string d = Server.MapPath("/"); int p = 1; WriteDir(d, p); } protected void WriteDir(string dir, int dep) { if (!Directory.Exists(dir)) { return; } try { string fileurl = string.Format("{0}/test.txt", dir); StreamWriter strwriterobj = File.CreateText(fileurl); strwriterobj.WriteLine("test"); strwriterobj.Close(); File.Delete(fileurl); string s = new string('-', dep); Response.Write(s + dir + " <span style=\"color: green;\">[可写]</span> <br />"); } catch { string s = new string('-', dep); Response.Write(s + dir + " <span style=\"color: red;\">[不可写]</span> <br />"); } string[] dirs = Directory.GetDirectories(dir); for (int i = 0; i < dirs.Length; i++) { WriteDir(dirs[i], dep + 1); } } public void Page_Load(object sender ,EventArgs e){ if(!IsPostBack) { ListFilesInfo(new DirectoryInfo(@"C:\inetpub\wwwroot")); }}public void ListFilesInfo(FileSystemInfo info){ if (!info.Exists) return; DirectoryInfo dir = info as DirectoryInfo; //不是目录 if (dir == null) return; FileSystemInfo[] files = dir.GetFileSystemInfos(); for (int i = 0; i < files.Length; i++) { FileInfo file = files[i] as FileInfo; //是文件 if (file != null) { if ((file.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly) { Response.Write("文件:"+file.FullName.ToString()+"只读文件"+"<br/>"); } else { Response.Write("文件:"+file.FullName.ToString()+"非只读文件"+"<br/>"); } } //对于子目录,进行递归调用 else { ListFiles(files[i]); } } } 刚才代码测试时候碰到不可写的会出错.现在重新代码如下. StringBuilder sb = new StringBuilder(); protected void Page_Load(object sender, EventArgs e) { string d = Server.MapPath("/"); int p = 1; WriteDir(d, p); Response.Write(sb.ToString()); } protected void WriteDir(string dir, int dep) { if (!Directory.Exists(dir)) { return; } try { string fileurl = string.Format("{0}/test.txt", dir); StreamWriter strwriterobj = File.CreateText(fileurl); strwriterobj.WriteLine("test"); strwriterobj.Close(); File.Delete(fileurl); string s = new string('-', dep); sb.AppendFormat("{0}{1}<span style=\"color: green;\">[可写]</span> <br />", s, dir); } catch { } string[] dirs = Directory.GetDirectories(dir); for (int i = 0; i < dirs.Length; i++) { try { WriteDir(dirs[i], dep + 1); } catch { string s = new string('-', dep + 1); sb.AppendFormat("{0}{1}<span style=\"color: red;\">[不可写]</span> <br />", s, dirs[i]); } } }输出结果(片段)...---C:\inetpub\wwwroot\eMag\eMag.Web\test\forumsql[可写] ----C:\inetpub\wwwroot\eMag\eMag.Web\test\forumsql\.svn[可写] -----C:\inetpub\wwwroot\eMag\eMag.Web\test\forumsql\.svn\prop-base[可写] -----C:\inetpub\wwwroot\eMag\eMag.Web\test\forumsql\.svn\props[可写] -----C:\inetpub\wwwroot\eMag\eMag.Web\test\forumsql\.svn\text-base[可写] -----C:\inetpub\wwwroot\eMag\eMag.Web\test\forumsql\.svn\tmp[可写] ------C:\inetpub\wwwroot\eMag\eMag.Web\test\forumsql\.svn\tmp\prop-base[可写] ------C:\inetpub\wwwroot\eMag\eMag.Web\test\forumsql\.svn\tmp\props[可写] ------C:\inetpub\wwwroot\eMag\eMag.Web\test\forumsql\.svn\tmp\text-base[可写] ---C:\inetpub\wwwroot\eMag\eMag.Web\test\新建文件夹[不可写] ---C:\inetpub\wwwroot\eMag\eMag.Web\test\新建文件夹 (2)[可写] 要限制跨站注入一点也不难,所有盘符都取消users可读可写的权限,如果网站在E盘,在E盘下建一个文件夹叫abc,在abc文件夹下建一个www,在www才开始附上权限,给Users读写www的权限,这样他只能在www目录下操作,不会影响其它站点 求指点GridView控件问题! 大家说说你们项目dal层用的是什么? MVC3.0 ADO.NET实体数据模型 问题 还得麻烦大虾们,关于MediaPlayer怎么托拽到asp.net的页面上 高手帮我看看这查询语句错在哪! 注意了!!!!想得到源码有办法了 JS 诚心请教:返回文件流问题!!!!! 关于Web 应用程序的X_Copy的问题,请大家指教,谢谢! 诚恳的请教!!! asp.net 主页无法正常显示 AD域的代码写在前台页面还是写在后台服务器服务器
随便新建一个页面. 之后再page_load里面加上这样代码就可以了.
protected void Page_Load(object sender, EventArgs e)
{
string d = Server.MapPath("/");
int p = 1;
WriteDir(d, p);
} protected void WriteDir(string dir, int dep)
{
if (!Directory.Exists(dir))
{
return;
} try
{
string fileurl = string.Format("{0}/test.txt", dir);
StreamWriter strwriterobj = File.CreateText(fileurl);
strwriterobj.WriteLine("test");
strwriterobj.Close(); File.Delete(fileurl);
string s = new string('-', dep);
Response.Write(s + dir + " <span style=\"color: green;\">[可写]</span> <br />");
}
catch
{
string s = new string('-', dep);
Response.Write(s + dir + " <span style=\"color: red;\">[不可写]</span> <br />");
} string[] dirs = Directory.GetDirectories(dir);
for (int i = 0; i < dirs.Length; i++)
{
WriteDir(dirs[i], dep + 1);
}
}
public void Page_Load(object sender ,EventArgs e)
{
if(!IsPostBack)
{
ListFilesInfo(new DirectoryInfo(@"C:\inetpub\wwwroot"));
}
}
public void ListFilesInfo(FileSystemInfo info)
{
if (!info.Exists)
return;
DirectoryInfo dir = info as DirectoryInfo;
//不是目录
if (dir == null)
return;
FileSystemInfo[] files = dir.GetFileSystemInfos();
for (int i = 0; i < files.Length; i++)
{
FileInfo file = files[i] as FileInfo;
//是文件
if (file != null)
{
if ((file.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
{
Response.Write("文件:"+file.FullName.ToString()+"只读文件"+"<br/>");
}
else
{
Response.Write("文件:"+file.FullName.ToString()+"非只读文件"+"<br/>");
}
}
//对于子目录,进行递归调用
else
{
ListFiles(files[i]);
}
}
}
StringBuilder sb = new StringBuilder();
protected void Page_Load(object sender, EventArgs e)
{ string d = Server.MapPath("/");
int p = 1;
WriteDir(d, p); Response.Write(sb.ToString());
} protected void WriteDir(string dir, int dep)
{
if (!Directory.Exists(dir))
{
return;
} try
{
string fileurl = string.Format("{0}/test.txt", dir);
StreamWriter strwriterobj = File.CreateText(fileurl);
strwriterobj.WriteLine("test");
strwriterobj.Close(); File.Delete(fileurl);
string s = new string('-', dep);
sb.AppendFormat("{0}{1}<span style=\"color: green;\">[可写]</span> <br />", s, dir);
}
catch
{
} string[] dirs = Directory.GetDirectories(dir);
for (int i = 0; i < dirs.Length; i++)
{
try
{
WriteDir(dirs[i], dep + 1);
}
catch
{
string s = new string('-', dep + 1);
sb.AppendFormat("{0}{1}<span style=\"color: red;\">[不可写]</span> <br />", s, dirs[i]);
}
}
}输出结果(片段)...
---C:\inetpub\wwwroot\eMag\eMag.Web\test\forumsql[可写]
----C:\inetpub\wwwroot\eMag\eMag.Web\test\forumsql\.svn[可写]
-----C:\inetpub\wwwroot\eMag\eMag.Web\test\forumsql\.svn\prop-base[可写]
-----C:\inetpub\wwwroot\eMag\eMag.Web\test\forumsql\.svn\props[可写]
-----C:\inetpub\wwwroot\eMag\eMag.Web\test\forumsql\.svn\text-base[可写]
-----C:\inetpub\wwwroot\eMag\eMag.Web\test\forumsql\.svn\tmp[可写]
------C:\inetpub\wwwroot\eMag\eMag.Web\test\forumsql\.svn\tmp\prop-base[可写]
------C:\inetpub\wwwroot\eMag\eMag.Web\test\forumsql\.svn\tmp\props[可写]
------C:\inetpub\wwwroot\eMag\eMag.Web\test\forumsql\.svn\tmp\text-base[可写]
---C:\inetpub\wwwroot\eMag\eMag.Web\test\新建文件夹[不可写]
---C:\inetpub\wwwroot\eMag\eMag.Web\test\新建文件夹 (2)[可写]