安全研究
安全漏洞
Web Wiz Forum未授权私人版块访问漏洞
发布日期:2003-11-04
更新日期:2003-11-11
受影响系统:
Web Wiz Forums Web Wiz Forums 7.5不受影响系统:
Web Wiz Forums Web Wiz Forums 7.01
Web Wiz Forums Web Wiz Forums 6.34
Web Wiz Forums Web Wiz Forums 7.51描述:
BUGTRAQ ID: 8957
CVE(CAN) ID: CVE-2003-1176
Web Wiz Forum是一款基于WEB的论坛程序。
Web Wiz Forum不正确处理使用'quote'模式的畸形请求,远程攻击者可以利用这个漏洞未授权访问私人版块。
当使用"quote"模式时,Web Wiz Forum由于没有充分检查是否对论坛和消息的请求,可导致远程攻击者在本来不允许访问的私人版块中读取和张贴消息。
<*来源:Alexander Antipov (pk95@yandex.ru)
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=106787795023087&w=2
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
用户"A"对Forum1 (FID=1)具有读写访问,而对Forum2(FID=2)和PID=1111(在TID=11主题中)消息没有访问权限。用户"A"对TID=11主题的PID=1111消息没有访问权限。但是用户可以对Foruml (FID=1)的PID=1111消息使用"quote"模式来读取私人消息并进行张贴回答:
http://webwizforum/post_message_form.asp?mode=quote&PID=1111&FID=1&TID=11&TPN=1
(instead of PID=1111&FID=2&TID=11&TPN=1)
建议:
厂商补丁:
Web Wiz Forums
--------------
使用如下补丁:
-- begin snip post_message_form.asp ----
'If this is a quoted message read in the message to be quoted
If strMode = "quote" Then
'Get the number this thread is after
intTotalNumOfThreads = Request.QueryString("NOP")
'Get the return thread page
intRecordPositionPageNum = Request.QueryString("TPN")
--- bug fix by pharaoh ----
strSQL = "SELECT " & strDbTable & "Topic.Subject FROM " & strDbTable
& "Topic "
strSQL = strSQL & "WHERE " & strDbTable & "Topic.Forum_ID = " &
CLng(Request.QueryString("FID"))
strSQL = strSQL & "AND " & strDbTable & "Topic.Topic_ID = " &
CLng(Request.QueryString("TID"))
rsCommon.Open strSQL, adoCon
If rsCommon.EOF Then
rsCommon.Close
Set rsCommon = Nothing
Set adoCon = Nothing
Set adoCon = Nothing
Response.Redirect "insufficient_permission.asp"
End If
rsCommon.Close
strSQL = "SELECT " & strDbTable & "Author.Author_ID, " & strDbTable
& "Author.Username, " & strDbTable & "Thread.Message "
strSQL = strSQL & "FROM " & strDbTable & "Thread INNER JOIN " &
strDbTable & "Author ON " & strDbTable & "Thread.Author_ID = " & strDbTable
& "Author.Author_ID "
strSQL = strSQL & "WHERE " & strDbTable & "Thread.Thread_ID = " &
CLng(Request.QueryString("PID"))
strSQL = strSQL & "AND " & strDbTable & "Thread.Topic_ID = " &
CLng(Request.QueryString("TID"))
rsCommon.Open strSQL, adoCon
If rsCommon.EOF Then
rsCommon.Close
Set rsCommon = Nothing
Set adoCon = Nothing
Set adoCon = Nothing
Response.Redirect "insufficient_permission.asp"
End If
--- bug fix by pharaoh ----
-- end snip post_message_form.asp ----
浏览次数:3337
严重程度:0(网友投票)
绿盟科技给您安全的保障