首页 -> 安全研究

安全研究

安全漏洞
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
*>

测试方法:

警 告

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

Alexander Antipov (pk95@yandex.ru)提供了如下测试方法:

用户"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 ----

浏览次数:3317
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障