功能:
扫描同目录下是否有压缩包,如果有执行解压,解压完成后对压缩包删除,可以的话把本身也删除,也就是目录下只留压缩包里的东西
注:如果不能完成解压,可以调用DLL类进行解压,
26 个解决方案
#1
#2
这个asp木马有这个功能,你可以看看再修改下代码
#3
从程序中摘出来的一小段程序,希望对你有所帮助:
<%
Set Shell = Server.CreateObject("WScript.Shell")'存放解压文件的目录需要Everyone写的权限
p=server.Mappath("rar") '解压程序的存放位置
cmd="" 'p & "\cmd.exe /c " '不需要cmd.exe文件
rar=p & "\rar.exe x -o+ " '用于解压缩的程序
command= cmd & rar & SaveFile & " " & SavePath & "\" & iif(zz<10,"0","") & zz ' rar.exe x -t -o+ -p- iis.rar c:\ok
'response.write command & "<br>"
'D:\www\dw\rar\rar.exe x -o+ d:\ftp\dw\0933101\00\0301EF69B4346C06AD51D192E6F5C91043.rar d:\ftp\dw\0933101\00\03
RetCode = Shell.Run(command,1, True)
if RetCode=0 then
CheckHackerFiles SavePath & "\" & iif(zz<10,"0","") & zz ' d:\ftp\dw\0933101\00\03
Response.write "<center><br><br>文件 <span style=""color:red;"">" & FileName_j & " </span>上传成功!<br></center>"
else
Response.write "<center><br><br><span style=""color:red;""> 文件 </span>" & FileName_j & "<span style=""color:red;""> 格式不正确!</span></center>"
Set fso=CreateObject("Scripting.FileSystemObject") '删除上传的压缩文件
fso.DeleteFile SaveFile
set fso=Nothing
end if
%>
#4
可以先删除原来的所有文件及子目录中的文件,然后再解压。
删除各目录下的文件可用:
删除各目录下的文件可用:
<%
Sub CheckHackerFiles(Path)
dim fso,fd,fs,fo,f,c,pos
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set fd=fso.GetFolder(Path)
Set fs=fd.Files
for each f in fs
fso.DeleteFile Path & "\" & f.Name
next
Set fs=fd.SubFolders
For each f in fs
CheckHackerFiles Path & "\" & f.Name
next
End Sub
%>
#5
能不能根据我上面的需求帮我写一个页面,十分感谢,我对asp一点不懂,你给的代码我也看不懂
#6
#7
同目录下是否有压缩包,如果有执行解压,解压完成后对压缩包删除,可以的话把本身也删除,也就是
目录下只留压缩包里的东西
问题:
1、不行的,你会把本程序也删除掉的
2、有多个压缩包怎么办?出现重名怎么办?
问题:
1、不行的,你会把本程序也删除掉的
2、有多个压缩包怎么办?出现重名怎么办?
#8
第一个问题:可以保留本程序
第二个问题:不会出现多个压缩包,只有一个压缩包,解压完成后,删除压缩包
#9
请高手也关注一下我的问题 感谢
http://topic.csdn.net/u/20110415/14/e2203fd0-5a18-4133-b415-6d3227f5a54d.html?15638
http://topic.csdn.net/u/20110415/14/e2203fd0-5a18-4133-b415-6d3227f5a54d.html?15638
#10
通过测试,功能强大,小心使用!
请在站点下新建一个文件夹,里面的文件清单如下:
1、本程序文件,起什么名字无关紧要,但压缩包中不要有同名文件,以免解压时覆盖
2、rar.exe,这是从WInrar安装目录中拷贝过来的dos下使用的解压文件
3、要解压的压缩包,名字随意
说明:
1、除上面三项外,目录下的其他任何东西(含子目录)都将被删除
2、目录要有足够的操作权限
3、解压成功,原压缩包会被删除,否则不会删除
4、压缩包中可以含子目录,解压时一并还原
5、若没有压缩包,则相当于删除目录中清单前两项之外的所有内容
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<%
dim pName, pPath, rarFile '本文件名,本文件的路径,压缩包名
pName= request.ServerVariables("SCRIPT_NAME") '/vote/cs/jy.asp
pName=Ucase(mid(pName,instrrev(pName,"/")+1)) 'JY.ASP
pPath=Server.MapPath(".") 'E:\www\vote\cs
rarFile=""
delAllFile pPath
if rarFile<>"" then '存在压缩包
response.Write("Rar=" & rarFile & "<br>")
if unRar then
response.Write("Success!")
else
response.Write("Error!")
end if
else
response.Write("No find RAR file")
end if
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub delAllFile(Path)
dim fso,fd,fs,fn,f
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set fd=fso.GetFolder(Path)
Set fs=fd.Files
for each f in fs
fn=UCase(f.Name)
if Path=pPath and (fn=pName or fn="RAR.EXE" or right(fn,4)=".RAR" ) then
' 不能删除:1、本程序 2、压缩包 3、解压程序
if right(fn,4)=".RAR" then rarFile= Path & "\" & f.Name
else
fso.DeleteFile Path & "\" & f.Name
end if
next
Set fs=fd.SubFolders
For each f in fs
delAllFile Path & "\" & f.Name
next
if Path<>pPath then
fd.Delete
end if
set fs=Nothing
set fd=Nothing
set fso=Nothing
End Sub
Function unRar()
dim Shell, cmd, fso
Set Shell = Server.CreateObject("WScript.Shell") '存放解压文件的目录需要Everyone写的权限
cmd=server.Mappath("rar.exe") & " x -o+ " & rarFile & " " & Server.MapPath(".")
unRar = ( Shell.Run(cmd,1, True) = 0 )
if unRar then '若解压成功
Set fso=CreateObject("Scripting.FileSystemObject") '删除上传的压缩包文件
fso.DeleteFile rarFile
set fso=Nothing
end if
Set Shell=Nothing
End Function
%>
</body>
</html>
#11
非常感谢,还有一些问题,
压缩包名,本文件的路径是通过参数传过来的,不过大致路径是一样的
例:
users文件夹下包含a,b,c,d四个文件夹,这些文件夹是动态创建的,
比如:E:\users\a\web\
E:\users\b\web\
E:\users\c\web\
也就是都在E:\users目录下,而a,b,c,d这些是不固定的,可能是其它名字,我通过参数会传过来,这边接收就行了,
压缩包名字也是传过来的
#12
我应该复制哪个rar.exe
#13
386kb的那个Rar.exe
#14
我试过了,不行啊,
Rar=E:\发布\dfdsf\A301-jiaoyu.Rar
Error
dfdsf目录下文件
A301-jiaoyu.Rar
dsfds.asp
Rar.exe
#15
现在可以了,
请帮忙解决这些问题:
压缩包名,本文件的路径是通过参数传过来的,不过大致路径是一样的
例:
users文件夹下包含a,b,c,d四个文件夹,这些文件夹是动态创建的,
比如:E:\users\a\web\
E:\users\b\web\
E:\users\c\web\
也就是都在E:\users目录下,而a,b,c,d这些是不固定的,可能是其它名字,我通过参数会传过来,这边接收就行了,
压缩包名字也是传过来的
还有必需要有Everyone权限吗? 其它的可不可以
请帮忙解决这些问题:
压缩包名,本文件的路径是通过参数传过来的,不过大致路径是一样的
例:
users文件夹下包含a,b,c,d四个文件夹,这些文件夹是动态创建的,
比如:E:\users\a\web\
E:\users\b\web\
E:\users\c\web\
也就是都在E:\users目录下,而a,b,c,d这些是不固定的,可能是其它名字,我通过参数会传过来,这边接收就行了,
压缩包名字也是传过来的
还有必需要有Everyone权限吗? 其它的可不可以
#16
可不可以自动检测本目录下是否有压缩文件
#17
不就是这样自动检测的吗?
#18
根据你的目录结构,程序进行简单修改就行啦!结贴吧!
#19
楼主先说清背景好不好?如果是要完成一次性的安装,只要一个BAT就完事了(包括删除BAT自身)。
#20
我通过FTP向这个文件夹传送一个压缩包,但是需要传送完成后进行解压,
我就是用户访问我的网站,点击下载文件,而文件不是下载到本地,是下载到用户指定的FTP空间,下载的是压缩包,我想在传送完压缩包之后,直接解压, 我就想传送完成后调用用户FTP空间下的asp程序进行解压,然后删除压缩包,当然肯定在IIS下新建网站的目录指定到FTP的
#21
可以结了,还想在问一下,这个everyone 权限可不可以改成其它的,刚问了一下,不能给这个权限
#22
这个问题解决了,我可以再加分
#23
#24
#25
用 IIS 进程帐户: IWAM_XXXX,其中XXXX随机器不能应该不一样。
#26
不让加分了,"该帖已达到分数最大值,不允许加分操作。"
多谢你了
#1
#2
这个asp木马有这个功能,你可以看看再修改下代码
#3
从程序中摘出来的一小段程序,希望对你有所帮助:
<%
Set Shell = Server.CreateObject("WScript.Shell")'存放解压文件的目录需要Everyone写的权限
p=server.Mappath("rar") '解压程序的存放位置
cmd="" 'p & "\cmd.exe /c " '不需要cmd.exe文件
rar=p & "\rar.exe x -o+ " '用于解压缩的程序
command= cmd & rar & SaveFile & " " & SavePath & "\" & iif(zz<10,"0","") & zz ' rar.exe x -t -o+ -p- iis.rar c:\ok
'response.write command & "<br>"
'D:\www\dw\rar\rar.exe x -o+ d:\ftp\dw\0933101\00\0301EF69B4346C06AD51D192E6F5C91043.rar d:\ftp\dw\0933101\00\03
RetCode = Shell.Run(command,1, True)
if RetCode=0 then
CheckHackerFiles SavePath & "\" & iif(zz<10,"0","") & zz ' d:\ftp\dw\0933101\00\03
Response.write "<center><br><br>文件 <span style=""color:red;"">" & FileName_j & " </span>上传成功!<br></center>"
else
Response.write "<center><br><br><span style=""color:red;""> 文件 </span>" & FileName_j & "<span style=""color:red;""> 格式不正确!</span></center>"
Set fso=CreateObject("Scripting.FileSystemObject") '删除上传的压缩文件
fso.DeleteFile SaveFile
set fso=Nothing
end if
%>
#4
可以先删除原来的所有文件及子目录中的文件,然后再解压。
删除各目录下的文件可用:
删除各目录下的文件可用:
<%
Sub CheckHackerFiles(Path)
dim fso,fd,fs,fo,f,c,pos
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set fd=fso.GetFolder(Path)
Set fs=fd.Files
for each f in fs
fso.DeleteFile Path & "\" & f.Name
next
Set fs=fd.SubFolders
For each f in fs
CheckHackerFiles Path & "\" & f.Name
next
End Sub
%>
#5
能不能根据我上面的需求帮我写一个页面,十分感谢,我对asp一点不懂,你给的代码我也看不懂
#6
#7
同目录下是否有压缩包,如果有执行解压,解压完成后对压缩包删除,可以的话把本身也删除,也就是
目录下只留压缩包里的东西
问题:
1、不行的,你会把本程序也删除掉的
2、有多个压缩包怎么办?出现重名怎么办?
问题:
1、不行的,你会把本程序也删除掉的
2、有多个压缩包怎么办?出现重名怎么办?
#8
第一个问题:可以保留本程序
第二个问题:不会出现多个压缩包,只有一个压缩包,解压完成后,删除压缩包
#9
请高手也关注一下我的问题 感谢
http://topic.csdn.net/u/20110415/14/e2203fd0-5a18-4133-b415-6d3227f5a54d.html?15638
http://topic.csdn.net/u/20110415/14/e2203fd0-5a18-4133-b415-6d3227f5a54d.html?15638
#10
通过测试,功能强大,小心使用!
请在站点下新建一个文件夹,里面的文件清单如下:
1、本程序文件,起什么名字无关紧要,但压缩包中不要有同名文件,以免解压时覆盖
2、rar.exe,这是从WInrar安装目录中拷贝过来的dos下使用的解压文件
3、要解压的压缩包,名字随意
说明:
1、除上面三项外,目录下的其他任何东西(含子目录)都将被删除
2、目录要有足够的操作权限
3、解压成功,原压缩包会被删除,否则不会删除
4、压缩包中可以含子目录,解压时一并还原
5、若没有压缩包,则相当于删除目录中清单前两项之外的所有内容
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<%
dim pName, pPath, rarFile '本文件名,本文件的路径,压缩包名
pName= request.ServerVariables("SCRIPT_NAME") '/vote/cs/jy.asp
pName=Ucase(mid(pName,instrrev(pName,"/")+1)) 'JY.ASP
pPath=Server.MapPath(".") 'E:\www\vote\cs
rarFile=""
delAllFile pPath
if rarFile<>"" then '存在压缩包
response.Write("Rar=" & rarFile & "<br>")
if unRar then
response.Write("Success!")
else
response.Write("Error!")
end if
else
response.Write("No find RAR file")
end if
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub delAllFile(Path)
dim fso,fd,fs,fn,f
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set fd=fso.GetFolder(Path)
Set fs=fd.Files
for each f in fs
fn=UCase(f.Name)
if Path=pPath and (fn=pName or fn="RAR.EXE" or right(fn,4)=".RAR" ) then
' 不能删除:1、本程序 2、压缩包 3、解压程序
if right(fn,4)=".RAR" then rarFile= Path & "\" & f.Name
else
fso.DeleteFile Path & "\" & f.Name
end if
next
Set fs=fd.SubFolders
For each f in fs
delAllFile Path & "\" & f.Name
next
if Path<>pPath then
fd.Delete
end if
set fs=Nothing
set fd=Nothing
set fso=Nothing
End Sub
Function unRar()
dim Shell, cmd, fso
Set Shell = Server.CreateObject("WScript.Shell") '存放解压文件的目录需要Everyone写的权限
cmd=server.Mappath("rar.exe") & " x -o+ " & rarFile & " " & Server.MapPath(".")
unRar = ( Shell.Run(cmd,1, True) = 0 )
if unRar then '若解压成功
Set fso=CreateObject("Scripting.FileSystemObject") '删除上传的压缩包文件
fso.DeleteFile rarFile
set fso=Nothing
end if
Set Shell=Nothing
End Function
%>
</body>
</html>
#11
非常感谢,还有一些问题,
压缩包名,本文件的路径是通过参数传过来的,不过大致路径是一样的
例:
users文件夹下包含a,b,c,d四个文件夹,这些文件夹是动态创建的,
比如:E:\users\a\web\
E:\users\b\web\
E:\users\c\web\
也就是都在E:\users目录下,而a,b,c,d这些是不固定的,可能是其它名字,我通过参数会传过来,这边接收就行了,
压缩包名字也是传过来的
#12
我应该复制哪个rar.exe
#13
386kb的那个Rar.exe
#14
我试过了,不行啊,
Rar=E:\发布\dfdsf\A301-jiaoyu.Rar
Error
dfdsf目录下文件
A301-jiaoyu.Rar
dsfds.asp
Rar.exe
#15
现在可以了,
请帮忙解决这些问题:
压缩包名,本文件的路径是通过参数传过来的,不过大致路径是一样的
例:
users文件夹下包含a,b,c,d四个文件夹,这些文件夹是动态创建的,
比如:E:\users\a\web\
E:\users\b\web\
E:\users\c\web\
也就是都在E:\users目录下,而a,b,c,d这些是不固定的,可能是其它名字,我通过参数会传过来,这边接收就行了,
压缩包名字也是传过来的
还有必需要有Everyone权限吗? 其它的可不可以
请帮忙解决这些问题:
压缩包名,本文件的路径是通过参数传过来的,不过大致路径是一样的
例:
users文件夹下包含a,b,c,d四个文件夹,这些文件夹是动态创建的,
比如:E:\users\a\web\
E:\users\b\web\
E:\users\c\web\
也就是都在E:\users目录下,而a,b,c,d这些是不固定的,可能是其它名字,我通过参数会传过来,这边接收就行了,
压缩包名字也是传过来的
还有必需要有Everyone权限吗? 其它的可不可以
#16
可不可以自动检测本目录下是否有压缩文件
#17
不就是这样自动检测的吗?
#18
根据你的目录结构,程序进行简单修改就行啦!结贴吧!
#19
楼主先说清背景好不好?如果是要完成一次性的安装,只要一个BAT就完事了(包括删除BAT自身)。
#20
我通过FTP向这个文件夹传送一个压缩包,但是需要传送完成后进行解压,
我就是用户访问我的网站,点击下载文件,而文件不是下载到本地,是下载到用户指定的FTP空间,下载的是压缩包,我想在传送完压缩包之后,直接解压, 我就想传送完成后调用用户FTP空间下的asp程序进行解压,然后删除压缩包,当然肯定在IIS下新建网站的目录指定到FTP的
#21
可以结了,还想在问一下,这个everyone 权限可不可以改成其它的,刚问了一下,不能给这个权限
#22
这个问题解决了,我可以再加分
#23
#24
#25
用 IIS 进程帐户: IWAM_XXXX,其中XXXX随机器不能应该不一样。
#26
不让加分了,"该帖已达到分数最大值,不允许加分操作。"
多谢你了