admin 发表于 2012-11-13 13:27:52

没有将文件重命名,外加本地JS验证。配合IIS6.0解析漏洞 如果是IIS7 的话用火狐

漏洞出在fileload目录下的FileUpload.asp文件中,用的是无惧组建上传



看代码



01 var fu = new FileUpload("uploadForm","idFile", { Limit: 3, ExtIn: ["rar","doc","xls"], RanName: true,

02   onIniFile: function(file){ file.value ? file.style.display ="none" : this.Folder.removeChild(file); },

03   onEmpty: function(){ alert("请选择一个文件"); },

04   onLimite: function(){ alert("超过上传限制"); },

05   onSame: function(){ alert("已经有相同文件"); },

06   onNotExtIn: function(){ alert("只允许上传" + this.ExtIn.join(",") +"文件"); },

07   onFail: function(file){ this.Folder.removeChild(file); },

08   onIni: function(){

09         //显示文件列表

10         var arrRows = [];

11         if(this.Files.length){

12             var oThis = this;

13             Each(this.Files, function(o){

14               var a = document.createElement("a"); a.innerHTML ="取消"; a.href ="javascript:void(0);";

15               a.onclick = function(){ oThis.Delete(o); return false; };

16               arrRows.push();

17             });

18         } else { arrRows.push(["<font color='gray'>没有添加文件</font>"," "]); }

19         AddList(arrRows);

20         //设置按钮

21         $("idBtnupload").disabled = $("idBtndel").disabled = this.Files.length <= 0;

22   }

23 });

24   

25 $("idBtnupload").onclick = function(){

26   //显示文件列表

27   var arrRows = [];

28   Each(fu.Files, function(o){ arrRows.push(); });

29   AddList(arrRows);

30      

31   fu.Folder.style.display ="none";

32   $("idProcess").style.display ="";

33   $("idMsg").innerHTML ="正在上传文件到服务器,请稍候……<br />有可能因为网络问题,出现程序长时间无响应,请点击“<a href='?'><font color='red'>取消</font></a>”重新上传文件";

34      

35   fu.Form.submit();

36 }

37   

38 //用来添加文件列表的函数

39 function AddList(rows){

40   //根据数组来添加列表

41   var FileList = $("idFileList"), oFragment = document.createDocumentFragment();

42   //用文档碎片保存列表

43   Each(rows, function(cells){

44         var row = document.createElement("tr");

45         Each(cells, function(o){

46             var cell = document.createElement("td");

47             if(typeof o =="string"){ cell.innerHTML = o; }else{ cell.appendChild(o); }

48             row.appendChild(cell);

49         });

50         oFragment.appendChild(row);

51   })

52   //ie的table不支持innerHTML所以这样清空table

53   while(FileList.hasChildNodes()){ FileList.removeChild(FileList.firstChild); }

54   FileList.appendChild(oFragment);

55 }

56   

57   

58 $("idLimit").innerHTML = fu.Limit;

59   

60 $("idExt").innerHTML = fu.ExtIn.join(",");

61   

62 $("idBtndel").onclick = function(){ fu.Clear(); }

63   

64 //在后台通过window.parent来访问主页面的函数

65 function Finish(msg){ alert(msg); location.href = location.href; }

66   

67   </script>

68   <span class="STYLE1"> <strong> 注意:</strong></span></p>

69 <p class="STYLE1">  ·请选择【<strong id="idExt">rar,doc,xls</strong>】格式的文件,其他格式的文件请打包后再上传。</p>

70 <p class="STYLE1">  ·文件名尽量详细,以方便下载。</p>

71 <p class="STYLE1">   ·文件不能过大。 </p>

72 </body>

73 </html>

页: [1]
查看完整版本: 没有将文件重命名,外加本地JS验证。配合IIS6.0解析漏洞 如果是IIS7 的话用火狐