首页 -> 安全研究

安全研究

安全漏洞
Phorum 3.0.x的几个安全漏洞

发布日期:1999-12-29
更新日期:1999-12-29

受影响系统:
Phorum 3.0.x
描述:

概述:

    Phorum是用PHP编写的基于WEB的讨论组(BBS)软件。该软件包被发现存在几个安全漏洞,攻击者可以借此入侵Phorum运行的主机。


详细资料:

----------
Admin.php3

Admin.php3脚本用于安全和管理被创建的论坛。它带有口令保护,但利用其漏洞可以修改口令,然后穿过所有认证程序为所欲为。

如下URL可以将管理口令修改为'flow':

http://www.example.com/admin.php3?step=4&option=pass&confirm=flow&newPssword=flow

一旦拥有了管理功能的访问权限,就可以轻易读取该httpd服务器所在主机的任何文件。进入"Master Setting"功能,在"default .langfile name"输入框中输入:

/../../../../../../../../../../file/to/view

例如:

/../../../../../../../../../../etc/passwd

重新载入admin.php3页面后就可以浏览这个文件的内容了。

这个管理界面允许关闭Phorum,允许指定当论坛关闭时显示的文件。当其关闭时,Phorum利用一个"Location" http头使用户浏览器重定向到该“关闭”页面。缺省时Phorum使用的是相对URL路径,但可以将其重定向到任意URL。

进入"Master Settings"功能,修改"down page name"输入框内容为:

http://site.to.redirect.to?

注意,问号是必须的,因为Phorum会把后缀名(缺省是php3)添加到文件名后。

接着在管理界面关闭Phorum,将会触发重定向。


---------
Auth.php3

Phorum提供了一个限制对论坛某些部份(如贴文章、读等)访问的工具auth.php3。在这个脚本文件中存在一个很明显的后门,它允许任何"boogieman"用户越过认证程序,不须有效口令即可访问任何有访问限制的页面。

只要攻击者在需要访问的受访问限制的页面URL后添加"PHP_AUTH_USER=boogieman"变量/值对即可:

www.example.com/index.php3?PHP_AUTH_USER=boogieman

www.example.com/admin.php3?PHP_AUTH_USER=boogieman

等等。

正如我们所看到的,这时利用auth.php3工具保护admin.php3脚本已是毫无意义了。


---------
Code.php3

Phorum发行版本中有一个很可能是原本未准备提供的脚本文件。这个文件是code.php3,它接收一个参数。如果这个参数是Phorum目录下的一个文件名,将显示其内容。这个脚本限制了当前目录以外文件的访问,因此只能查看到管理员对该目录下php脚本源程序或其它文件所做的修改等等。


用法:

www.example.com/code.php3?file_to_view

例如:

www.example.com/code.php3?common.inc
www.example.com/code.php3?index.shtml


------------
Upgrade.php3

发行版本中的这个小脚本是用于将Phorum 1.x移植到Phorum 3.x。它允许攻击者(无须任何认证)指定需要升级的表和表的目标位置。这个漏洞可能导致拒绝服务攻击,因为将非Phorum 1.x的表移植到Phorum 3.x的表时可能会丢失许多数据。


---------
Read.php3

Phorum最强壮的特性是使用了后台SQL(PostgreSQL或MySQL),可以将大量数据/文章很好地保存起来(在Linux平台上至少支持15000篇贴文)。但问题是这个软件对大多数的传递给SQL查询的变量值没有经过有效性检查。

因此攻击者可以利用这个漏洞在服务器上运行任意的SQL命令。也许他们不能获得很多信息,但至少他们可以创建(CREATE)/删除(DROP)/插入(INSERT)/PostgreSQL COPY等各种数据库操作。

以下是利用read.php3脚本的示例,但其它脚本很可能也存在同样的问题:

如果要运行SQL命令"DROP TABLE x",则输入:

www.example.com/read.php3?num=1&action=3&sSQL=DROP%20TABLE%20x

要执行这个命令,Phorum需要有至少一个运行着的论坛。


--------------
Violation.php3

Phorum还存在另一个小漏洞:任何人都能利用violation.php3脚本发送电子邮件,并且不需要任何认证。不过要记住的是,这封电子邮件会包含攻击者的IP(或代理服务器IP)和FQDN。

语法结构为:

www.example.com/violation.php3?Mod=address@to.spam&ForumName=text_to_spam




建议:

1、按照Phorum发行版本security.txt文件中的步骤配置服务器。大多数的站点并没有做到这一点。

   仔细阅读"Securing the Admin Script"一节,按照其步骤将Phorum数据库与其它重要的数据库
   隔离,同时使用专门的用户名和口令访问Phorum数据库。

2、删除不需要的文件(如code.php3),添加对非公开文件的访问限制(如admin.php3、
   stats.php3、upgrade.php3)。

   PHP有一些内置的安全特性,如限制访问htdocs目录下文件等。请尽量使用它们!

3、等待补丁或升级版本。




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