解析Asp.Net木马文件操作
本文主要介绍一下Asp.net木马中文件操作功能的具体实现。 (关于防Asp.Net木马及Webshell攻击的解决办法见文章ASP.NET木马及Webshell安全解决方案)
要编写Asp.net木马,首先要导入名称空间System.IO。名称空间System.IO提供了大量文件和文件夹的操作功能,包括读写文件、创建和删除目录以及察看文件和目录的属性。
1. 浅谈取得文件和文件夹的信息
详细说一下attributes集合,它提供了文件和文件夹的额外信息,如是否只读的或隐藏的。
文件和目录的属性
属性 数字值
ReadOnly(只读) 1
Hidden(隐藏) 2
System(系统) 4
Directory(目录) 16
Archive(存档) 32
Encrypted(加密) 64
Normal(普通) 128
Tempory(临时) 256
SparseFile(稀疏文件) 512
Compressed(压缩) 2048
Offline(脱机) 4096
NotContentIndexed(非内容索引) 8192
要改变文件的属性,只需将这些值类加。例如,要将目录设置为隐藏+系统+加密+压缩,可以使用下面的语句:
f.attributes=2138
2138即2+4+64+2048
这些值估计新手很难记忆,我们直接用属性名称来设置,只要用或bitor来分割各属性,如:
f.attributes=FileAttributes.Hidden BitOr FileAttributes.System BitOr FileAttributes. Encrypted BitOr FileAttributes. Compressed
上述代码相当于f.attributes=2138
要确定文件或者文件夹的某个属性被设置,可使用与操作符bitand这样来检测:
if f.attributes bitand fileattributes.hidden >0 then
response.write(“属性为隐藏!”)
end if
检测函数:
sub getfileinfo()
dim f as new fileinfo(server.mappath(“test.aspx”))
f =new fileinfo(strf)
label1.text="文件信息:
文件名称:"& f.name &
"
文件路径:" & f.directoryname &
"
创建时间:" & f.CreationTime &
"
最后访问时间:" & f.lastaccesstime &
"
最后修改时间:" & f.lastwritetime &
"
文件长度:" & f.length & "bytes
文件属性:" & f.attributes & "
"
dir=f.directory
label1.text+="目录信息:
目录名:"& dir.name &"
目录全名:" & dir.fullname & "
创建时间:" & dir.CreationTime & "
最后访问时间:" & dir.lastaccesstime & "
最后修改时间:" & dir.lastwritetime & "
父母录:" & dir.parent.name &
"
目录属性:" & dir.attributes & "
"
end sub