IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    某通用教育系统任意文件上传+代码分析

    没穿底裤发表于 2015-10-03 08:09:53
    love 0

    系统:盈动信息发布系统
    问题文件:/Admin/WebUpload.aspx
    代码分析:
    该系统在admin目录中已经建立了web.config并且限制了用户访问
    但是代码如下:

    <location path="WebUploaded.aspx">
        <system.web>
          <authorization>
            <allow users="?" />
          </authorization>
        </system.web>
      </location>
      <location path="WebUpload.aspx">
        <system.web> 
          <authorization>
            <allow users="?" />
          </authorization>
        </system.web>
      </location>

    却允许部分页面可访问
    既然可访问那就看WebUpload.aspx的代码

    protected void Ok_Click(object sender, EventArgs e)
    		{
    			string text = "";
    			try
    			{
    				string upFileType = Globals.UpFileType;/*获取允许格式白名单*/
    				string text2 = this.UploadFile.PostedFile.FileName;/*获取上传的文件名*/
    				bool flag = text2 != string.Empty;
    				if (!flag)
    				{
    					text = "没有选择文件!";
    				}
    				else
    				{
    					text2 = Path.GetExtension(text2);
    					int contentLength = this.UploadFile.PostedFile.ContentLength;
    					text2 = text2.Remove(0, 1);
    					text2 = text2.Trim();
    					text2 = text2.ToLower();
    					if (flag)
    					{
    						/*这里判断文件大小  允许上传1M大小的文件*/
    						flag = (Globals.MaxFileSize == 0 || (contentLength > 0 & contentLength <= Globals.MaxFileSize * 1024));
    					}
    					if (!flag)
    					{
    						text = "文件大小超过了限制,最大只能上传" + Globals.MaxFileSize.ToString() + "K的文件!";
    					}
    					else
    					{
    						flag = (upFileType.IndexOf(text2) >= 0);/*判断后缀名*/
    						if (!flag)
    						{
    							/*设置错误信息*/
    							text = "这个文件类型不允许上传,只允许上传" + upFileType + "类型文件!";
    						}
    					}
    					if (flag)
    					{
    						Globals.UploadFileNum++;
    
    						string str = "upfile" + Globals.UploadFileNum.ToString() + "." + text2;
    
    						string text3 = string.Concat(new string[]
    
    						{
    
    							"/",
    
    							Globals.ApplicationVRoot,
    
    							"sites/",
    
    							Globals.CurrentSiteVirtualDirectory,
    
    							"/",
    
    							Globals.SaveUpFilesPath
    
    						});
    
    						string text4 = base.Server.MapPath(text3);
    
    						if (text4.EndsWith("\\"))
    
    						{
    
    							text4 = text4.Substring(0, text4.Length - 1);
    
    						}
    
    						text4 = text4 + "\\" + str;
    
    						text3 = text3 + "/" + str;
    
    						this.UploadFile.PostedFile.SaveAs(text4);/*保存文件*/
    
    						string returnValue = this.GetReturnValue(text3);
    
    						if (returnValue != "")
    
    						{
    
    							base.Response.Write(returnValue);/*输入文件名称以及路径*/
    
    						}
    
    					}
    
    				}
    
    			}
    
    			catch (Exception)
    
    			{
    
    				text = "文件没有保存!";
    
    			}
    
    			finally
    
    			{
    
    				if (text != "")
    
    				{
    
    					base.Response.Write("<script>alert('" + text + "')</script>");
    
    				}
    
    			}
    
    		}
    
    	}
    
    }

    利用方式:
    http://www.jgedu.net/Admin/WebUpload.aspx
    选择要上传的文件,“确定”
    上传完毕F12查看页面代码即可得到shell
    如果遇到上传完毕页面关闭之类的问题请将浏览器JavaScript禁用之后再上传 如下图
    2

    1



沪ICP备19023445号-2号
友情链接