澳门新葡亰信誉平台游戏Drupal 曝出代码执行高危漏洞,数百万网站受影响

by admin on 2020年3月8日

Drupal
开源内容管理系统曝出了一个允许黑客远程执行代码的高危漏洞,影响数以百万计的网站,如果不及时打补丁,这些使用
Drupal 的网站将面临被劫持的风险。

全球第三大属性管理系统Drupal修补一重大安全漏洞,该漏洞允许远端黑客执行任意程序并取得Drupal网站的控制权。

Drupal 是一个开源,灵活,高度可拓展和安全的内容管理系统Content
Management System(CMS),使用户轻松的创建网站。

漏洞编号 CVE-2019-6340,根源在于未能充分验证用户输入。利用该漏洞首先需要满足两个条件:

根据WebsiteSetup在去年12月的统计,全球约有16.5亿个网站,当中有一半采用属性管理系统进行建置,在CMS市场上,市占率最高的是WordPress,占了60%,居次的是Joomla的6.6%,Drupal则以4.6%名列第三,意味着约有3,700万个网站采用Drupal。

它可以使用模块拓展,使用户将内容管理转换为强大的数字解决方案。

  • 启用 Drupal 8 core RESTful Web Services (rest) 模块,允许 PATCH 或
    POST 请求;
  • 启用 Drupal 8 的 JSON:API 或者是Drupal 7 的 Services 或 RESTful Web
    Services 模块。

澳门新葡亰信誉平台游戏 1

Drupal 运行在诸如 Apache、IIS、Lighttpd、Cherokee、Nginx 的 Web
服务器上,后端数据库可以使用 MySQL、MongoDB、MariaDB、PostgreSQL、MSSQL
Server。

开发者建议网站管理员尽可能快地进行更新。

Drupal则说明,此一编号为CVE-2019-6340的安全漏洞,肇因于某些类型的栏位无法适当地处理非表格来源的资料,在某些情况下将允许黑客自远端执行PHP程序,因而将它列为高度重大(highly
critical)漏洞。

在这篇文章中, 我们会展示在 RHEL
7/6、CentOS 7/6 和
Fedora 20-25
发行版上使用 LAMP 架构,如何手动安装和配置 Drupal 8。

Drupal 是除 WordPress 和 Joomla
之外使用最广泛的内容管理系统(CMS)。Drupal
项目负责人表示,截至本月,Drupal 已被大约 120
万个站点使用,但他也表示这是“不完整”的估计。

但只有在某些特定的配置下才会形成漏洞,包括在Drupal 8上启用RESTful
Web服务模组,同时允许PATCH或POST请求;或者是启用了其它Web服务模组,像是在Drupal
8上启用JSON:API,或是在Drupal 7上启用Services或RESTful。

Drupal 需求:

  1. Apache 2.x (推荐)
  2. PHP 5.5.9 或 更高 (推荐 PHP 5.5)
  3. MySQL 5.5.3MariaDB 5.5.20 与 PHP 数据对象(PDO) 支持

安装过程中,我使用 drupal.tecmint.com 作为网站主机名,IP 地址为
192.168.0.104。你的环境也许与这些设置不同,因此请适当做出更改。

 

来自:

Drupal已修补了相关漏洞,建议Drupal 8.6.x用户升级到Drupal
8.6.10,8.5.x用户升级到Drupal 8.5.11,而虽然8.5.x以前的Drupal
8版本也受到该漏洞的影响,但因其产品寿命周期已经结束,已无更新程式可用。

步骤 1:安装 Apache Web 服务器

1、 首先我们从官方仓库开始安装 Apache Web 服务器。

  1. #yum install httpd

2、
安装完成后,服务开始是被禁用的,因此我们需要手动启动它,同时让它下次系统启动时自动启动,如下:

  1. -------------通过SystemD-CentOS/RHEL 7和Fedora22+-------------------
  2. #systemctl start httpd
  3. #systemctl enable httpd
  4. -------------通过SysVInit-CentOS/RHEL 6和Fedora----------------------
  5. # service httpd start
  6. # chkconfig --level 35 httpd on

3、 接下来,为了允许通过 HTTPHTTPS 访问 Apache
服务,我们必须打开 HTTPD 守护进程正在监听的 80443
端口,如下所示:

  1. ------------通过Firewalld-CentOS/RHEL 7andFedora22+-------------
  2. # firewall-cmd --permanent --zone=public--add-service=http
  3. # firewall-cmd --permanent --zone=public--add-service=https
  4. # firewall-cmd --reload
  5. ------------通过IPtables-CentOS/RHEL 6andFedora22+-------------
  6. # iptables -A INPUT -p tcp -m tcp --dport 80-j ACCEPT
  7. # iptables -A INPUT -p tcp -m tcp --dport 443-j ACCEPT
  8. # service iptables save
  9. # service iptables restart

4、 现在验证 Apache 是否正常工作, 打开浏览器在地址栏中输入
http://server_IP, 输入你的服务器 IP 地址, 默认 Apache2
页面应出现,如下面截图所示:

澳门新葡亰信誉平台游戏 2

Apache 默认页面

 

若要立即缓解该漏洞则可关闭所有的Web服务模组,或是变更Web服务器配置,禁止以PUT/PATCH/POST请求Web服务资源。

步骤 2: 安装 Apache PHP 支持

5、 接下来,安装 PHP 和 PHP 所需模块。

  1. #yum install php php-mbstring php-gd php-xml php-pear php-fpm php-mysql php-pdo php-opcache

重要: 假如你想要安装 PHP7, 你需要增加以下仓库:EPEL
Webtactic 才可以使用 yum 安装 PHP7.0:

  1. -------------Install PHP 7inCentOS/RHEL andFedora-------------
  2. # rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
  3. # rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
  4. #yum install php70w php70w-opcache php70w-mbstring php70w-gd php70w-xml php70w-pear php70w-fpm php70w-mysql php70w-pdo

6、 接下来,要从浏览器得到关于 PHP 安装和配置完整信息,使用下面命令在
Apache 文档根目录 (/var/www/html) 创建一个 info.php 文件。

  1. #echo"<?php phpinfo(); ?>">/var/www/html/info.php

然后重启 HTTPD 服务器 ,在浏览器地址栏输入 http://server_IP/info.php

  1. #systemctl restart httpd
  2. # service httpd restart

澳门新葡亰信誉平台游戏 3

验证 PHP 信息

 

步骤 3: 安装和配置 MariaDB 数据库

7、 请知晓, Red Hat
Enterprise Linux/CentOS 7.0
从支持 MySQL 转为了 MariaDB
作为默认数据库管理系统。

要安装 MariaDB 数据库, 你需要添加 官方 MariaDB

/etc/yum.repos.d/MariaDB.repo 中,如下所示。

  1. [mariadb]
  2. name =MariaDB
  3. baseurl = http://yum.mariadb.org/10.1/centos7-amd64
  4. gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
  5. gpgcheck=1

当仓库文件准备好后,你可以像这样安装 MariaDB:

  1. #yum install mariadb-server mariadb

8、 当 MariaDB
数据库安装完成,启动数据库的守护进程,同时使它能够在下次启动后自动启动。

  1. -------------通过SystemD-CentOS/RHEL 7andFedora22+-------------
  2. #systemctl start mariadb
  3. #systemctl enable mariadb
  4. -------------通过SysVInit-CentOS/RHEL 6andFedora-------------
  5. # service mysqld start
  6. # chkconfig --level 35 mysqld on

9、 然后运行 mysql_secure_installation 脚本去保护数据库(设置 root
密码, 禁用远程登录,移除测试数据库并移除匿名用户),如下所示:

  1. # mysql_secure_installation

澳门新葡亰信誉平台游戏 4

MySQL 安全安装

 

步骤 4: 在 CentOS 中安装和配置 Drupal 8

10、 这里我们使用 wget
命令
下载最新版本 Drupal(例如
8.2.6),如果你没有安装 wget 和 gzip 包 ,请使用下面命令安装它们:

  1. #yum install wget gzip
  2. #wget-c https://ftp.drupal.org/files/projects/drupal-8.2.6.tar.gz

11、 之后,解压 tar
文件
并移动 Drupal 目录到 Apache 文档根目录(/var/www/html)。

  1. #tar-zxvf drupal-8.2.6.tar.gz
  2. #mv drupal-8.2.6/var/www/html/drupal

12、 然后,依据 /var/www/html/drupal/sites/default
目录下的示例设置文件 default.settings.php,创建设置文件
settings.php,然后给 Drupal
站点目录设置适当权限,包括子目录和文件,如下所示:

  1. #cd/var/www/html/drupal/sites/default/
  2. #cpdefault.settings.php settings.php
  3. #chown-R apache:apache /var/www/html/drupal/

13、 更重要的是在 /var/www/html/drupal/sites/ 目录设置 SElinux
规则,如下:

  1. # chcon -R -t httpd_sys_content_rw_t/var/www/html/drupal/sites/

14、 现在我们必须为 Drupal 站点去创建一个用于管理的数据库和用户。

  1. # mysql -u root -p
  2. Enter password:
  3. MySQLShell
  4. Welcome to the MariaDB monitor.Commandsendwith;or g.
  5. YourMySQL connection idis12
  6. Server version:5.1.73Source distribution
  7. Copyright(c)2000,2016,Oracle,MariaDBCorporationAband others.
  8. Type'help;'or'h'for help.Type'c' to clear the current input statement.
  9. **MySQL[(none)]> create database drupal;**
  10. Query OK,1 row affected (0.00 sec)
  11. **MySQL[(none)]> create user ravi@localhost identified by 'tecmint123';**
  12. Query OK,0 rows affected (0.00 sec)
  13. **MySQL[(none)]> grant all on drupal.* to ravi@localhost;**
  14. Query OK,0 rows affected (0.00 sec)
  15. **MySQL[(none)]> flush privileges;**
  16. Query OK,0 rows affected (0.00 sec)
  17. **MySQL[(none)]>exit**
  18. Bye

15、 最后,打开地址: http://server_IP/drupal/
开始网站的安装,选择你首选的安装语言然后点击保存以继续。

澳门新葡亰信誉平台游戏 5

Drupal 安装语言

16、 下一步,选择安装配置文件,选择 Standard(标准),点击保存继续。

澳门新葡亰信誉平台游戏 6

Drupal 安装配置文件

17、 在进行下一步之前查看并通过需求审查并启用 Clean URL

澳门新葡亰信誉平台游戏 7

验证 Drupal 需求

现在在你的 Apache 配置下启用 Clean URL 的 Drupal。

  1. #vi/etc/httpd/conf/httpd.conf

确保为默认根文档目录 /var/www/html 设置
AllowOverride All,如下图所示:

澳门新葡亰信誉平台游戏 8

在 Drupal 中启用 Clean URL

18、 当你为 Drupal 启用 Clean
URL,刷新页面从下面界面执行数据库配置,输入 Drupal
站点数据库名,数据库用户和数据库密码。

当填写完所有信息点击保存并继续

澳门新葡亰信誉平台游戏 9

Drupal 数据库配置

若上述设置正确,Drupal 站点安装应该完成了,如下图界面。

澳门新葡亰信誉平台游戏 10

Drupal 安装

19、 接下来配置站点为下面的设置(使用适用你的情况的值):

  • 站点名称  – TecMint Drupal Site
  • 站点邮箱地址  – admin@tecmint.com
  • 用户名  – admin
  • 密码  – ##########
  • 用户的邮箱地址  – admin@tecmint.com
  • 默认国家  – India
  • 默认时区  – UTC

设置适当的值后,点击保存并继续完成站点安装过程。

澳门新葡亰信誉平台游戏 11

Drupal 站点配置

20、下图显示的是通过 LAMP 成功安装的 Drupal 8 站点。

澳门新葡亰信誉平台游戏 12

Drupal 站点面板

现在你可以点击增加内容,创建示例网页内容。

选项: 有些人使用 MySQL
命令行管理数据库不舒服,可以从浏览器界面
安装 PHPMYAdmin
管理数据库

浏览 Drupal 文档 : 

就这样! 在这个文章, 我们展示了在 CentOS 7
上如何去下载、安装和使用基本配置来设置 LAMP 以及 Drupal 8。
欢迎就这个教程提供反馈,或提供给我们一些相关信息。


作者简介:

Aaron Kili 是 linux 和 F.O.S.S 爱好者,将成为 Linux 系统管理员,Web
开发者,目前是 TecMint 的原创作者,热爱计算机工作,并且坚信知识共享。


via:

作者:Aaron Kili
译者:imxieke
校对:jasminepeng

本文由 LCTT
原创编译,Linux中国 荣誉推出

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/143081.htm

澳门新葡亰信誉平台游戏 13

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图