首页 网络安全 安全学院 查看内容

栽豆迷你博客 MiniBlog 3.0 漏洞

2009-6-21 10:39 560 0

摘要:   这些天都下雨 心情有点郁闷  翻开硬盘找几个像样的程序看看 于是乎 有了本文:  一. 经典的上传漏洞  很久没有接触过上传漏洞了 今次让我捡到了哈 漏洞存在与upfile.asp  &...
关键词: nbsp fileExt response 文件 Request CheckStr file Replace 漏洞 model

  这些天都下雨 心情有点郁闷  翻开硬盘找几个像样的程序看看 于是乎 有了本文:  一. 经典的上传漏洞  很久没有接触过上传漏洞了 今次让我捡到了哈 漏洞存在与upfile.asp  <!--#include file="include/conn.asp" -->  <!--#include file="include/const.asp" -->  <!--#include FILE="include/cb_upload.asp"-->  <%  dim filebleid,upload,formPath,formName,file,fileExt,filename,userface  filebleid=Caluoob.UserID  set upload=new upload_5xSoft ''建立上传对象  formPath=upload.form("filepath")  ''在目录后加(/)  if right(formPath,1)<>"/" then formPath=formPath&"/"  for each formName in upload.file ''列出所有上传了的文件  set file=upload.file(formName) ''生成一个文件对象  if file.filesize<100 then  response.write "<font size=2>请先选择你要上传的图片 [ <a href=# onclick=history.go(-1)>重新上传</a> ]</font>"  response.end  end if  if file.filesize>51200then  response.write "<font size=2>图片大小超过了限制 [ <a href=# onclick=history.go(-1)>重新上传</a> ]</font>"  response.end  end if  fileExt=lcase(right(file.filename,4))  if fileEXT<>".gif" and fileEXT<>".jpg" then  response.write "<font size=2>文件格式不对 [ <a href=# onclick=history.go(-1)>重新上传</a> ]</font>"  response.end  end if  filename="face/"&filebleid&fileExt  userface=filebleid&fileExt  if file.FileSize>0 then         ''如果 FileSize > 0 说明有文件数据  file.SaveAs Server.mappath(filename)   ''保存文件  end if  Caluoob.Execute("update [cb_user] set userface='"&userface&"' where id="&filebleid)  set file=nothing  next  set upload=nothing  Response.redirect "settings.asp"  %>  漏洞核心代码是  if fileEXT<>".gif" and fileEXT<>".jpg" then  response.write "<font size=2>文件格式不对 [ <a href=# onclick=history.go(-1)>重新上传</a> ]</font>"  response.end  这里我问了几个人 我是认为 提交1.jpg.asa是可行的 但是 if fileEXT<>".gif" and fileEXT<>".jpg" 这句话很绝 直接kill了任何非gif和jpg的后缀 就连上传 .jpg+空格 也不行  这里就可以通过nc来上传了 哈~   没错 就是截断~ 只要文件不超过51200kb就满足条件 我想没有什么马儿是超过51200kb的把~这里的目录可以自定义 所以又可以不截断得提交一个文件并新建一文件夹(这里大家都想到2003解析漏洞了把) 对 就是建立1.asp文件夹 随便上传一个马儿到里面 2003都会把他当成asp解析的  二。经典的注入  这系统多么精彩 啥注入都有、、 、post get cookies都有。。。  1.过滤不严:  过滤方面 程序员还是想到了 但是不完整 造成我们可以构造语句去突破 哈哈。  以下是do.asp代码  <%  Dim id,myrs,model,myfreinds  model=Replace(Request.QueryString("m"),"'","''")  id=Replace(ValidInteger(Request("in")),"'","''")  看到model变量如何过来的把 。。 简单用个replace函数把'过滤了 但是。。。我们还可以提交 ; 嘛  还有在admin_reing.asp里面:  Dim Action,model,rs,ingid  Action=Request("action")  model=CheckStr(Request("model"))  ingid=CheckStr(Request("ingid"))  action变量直接提交到服务端 危险。。  这里的model变量不一样了 不是之前那个do.asp的用get提交了 可是今次多了一个函数Checkstr过滤他们。。 俺们先不要绝望 我们去function.asp看看这个函数怎么写的:  '------------------------------------  Function CheckStr(ChkStr)  Dim Str:Str=ChkStr  If IsNull(Str) Then  CheckStr = ""  Exit Function  End If  Str = Replace(Str, "&", "&")  Str = Replace(Str,"'","'")  Str = Replace(Str,"""",""")  CheckStr=Str  End Function  '------------------------------------  呼呼         过滤也不严 绕过之,。。 哈哈 又一注入  三。经典的cookies注入。 我们看看: (CB_admin.asp里面)  AdminName=Request.cookies(CookieName&"CaluoobAdmin")("AdminName")  AdminWord=Request.cookies(CookieName&"CaluoobAdmin")("AdminWord")  构造语句 让我们绕过之。。 。 这套程序。。。 真xx
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部