整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

CVE-2019-6340:Drupal中的远程代码执行漏洞

期,安全专家在全球流行的Drupal CMS中发现了一个致命漏洞CVE-2019-6340,可导致远程代码执行。

Drupal也很快发布了安全更新。CVE-2019-6340主要是由于某些字段类型中缺少适当的安全过滤造成的,导致攻击者可用这个漏洞执行任意PHP代码。

这个漏洞是由Drupal安全团队的Samuel Mortenson发现的。

为了成功利用CVE-2019-6340,Drupal必须启用核心RESTful Web模块,并可接受PATCH或POST请求。如果启用了另一个Web服务模块(如Drupal 8中的JSON:API或Drupal 7中的RETSTful Web服务),也有可能触发该漏洞。

Drupal发布的Drupal 8.6.10和8.5.11已解决了这个漏洞。Drupal 7暂时不需要更新,但专家指出貌似也存在潜在的风险。

“如果想立刻拦截此漏洞的攻击,你可以禁用所有Web服务模块,或者禁止Web服务器接受Put/Patch/Post请求”。

“请注意,根据服务器的配置,Web服务可以在多个路径上访问。在Drupal 7上,资源通常可以通过路径以及“q”查询参数的结合进行查询。对于Drupal 8,若前缀为index.php/,路径依然可以正常访问。

Drupal用户最好尽快安装最新版本。

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场

来源:https://nosec.org/home/detail/2270.html

白帽汇从事信息安全,专注于安全大数据、企业威胁情报。

公司产品:FOFA-网络空间安全搜索引擎、FOEYE-网络空间检索系统、NOSEC-安全讯息平台。

为您提供:网络空间测绘、企业资产收集、企业威胁情报、应急响应服务。

、SQL 注入

SQL 注入就是通过给 web 应用接口传入一些特殊字符,达到欺骗服务器执行恶意的 SQL 命令。

SQL 注入漏洞属于后端的范畴,但前端也可做体验上的优化。

原因

当使用外部不可信任的数据作为参数进行数据库的增、删、改、查时,如果未对外部数据进行过滤,就会产生 SQL 注入漏洞。

比如:

name = 
"外部输入名称"
;
sql = 
"select * from users where name="
 + name;

上面的 SQL 语句目的是通过用户输入的用户名查找用户信息,因为由于 SQL 语句是直接拼接的,也没有进行过滤,所以,当用户输入''or'1'='1'时,这个语句的功能就是搜索users全表的记录。

select
 * 
from
 users 
where
 name=
''
 
or
 
'1'
=
'1'
;

解决方案

具体的解决方案很多,但大部分都是基于一点:不信任任何外部输入。

所以,对任何外部输入都进行过滤,然后再进行数据库的增、删、改、查。

此外,适当的权限控制、不曝露必要的安全信息和日志也有助于预防 SQL 注入漏洞。

2、XSS 攻击

XSS 攻击全称跨站脚本攻击(Cross-Site Scripting),简单的说就是攻击者通过在目标网站上注入恶意脚本并运行,获取用户的敏感信息如 Cookie、SessionID 等,影响网站与用户数据安全。

XSS 攻击更偏向前端的范畴,但后端在保存数据的时候也需要对数据进行安全过滤。

原因

当攻击者通过某种方式向浏览器页面注入了恶意代码,并且浏览器执行了这些代码。

比如:在一个文章应用中(如微信文章),攻击者在文章编辑后台通过注入script标签及js代码,后端未加过滤就保存到数据库,前端渲染文章详情的时候也未加过滤,这就会让这段js代码执行,引起 XSS 攻击。

解决方案

一个基本的思路是渲染前端页面(不管是客户端渲染还是服务器端渲染)或者动态插入 HTML 片段时,任何数据都不可信任,都要先做 HTML 过滤,然后再渲染。

3、CSRF 攻击

CSRF 攻击全称跨站请求伪造(Cross-site Request Forgery),简单的说就是攻击者盗用了你的身份,以你的名义发送恶意请求。

原因

一个典型的 CSRF 攻击有着如下的流程:

  • 受害者登录 a.com,并保留了登录凭证(Cookie)
  • 攻击者引诱受害者访问了 b.com
  • b.com 向 a.com 发送了一个请求: a.com/act=xx(浏览器会默认携带 a.com 的 Cookie)
  • a.com 接收到请求后,对请求进行验证,并确认是受害者的凭证,误以为是受害者自己发送的请求
  • a.com 以受害者的名义执行了 act=xx
  • 攻击完成,攻击者在受害者不知情的情况下,冒充受害者,让 a.com 执行了自己定义的操作

解决方案

防止 CSRF 攻击需要在服务器端入手,基本的思路是能正确识别是否是用户发起的请求。

4、DDoS 攻击

DoS 攻击全称拒绝服务(Denial of Service),简单的说就是让一个公开网站无法访问,而 DDoS 攻击(分布式拒绝服务 Distributed Denial of Service)是 DoS 的升级版。

这个就完全属于后端的范畴了。

原因

攻击者不断地提出服务请求,让合法用户的请求无法及时处理,这就是 DoS 攻击。

攻击者使用多台计算机或者计算机集群进行 DoS 攻击,就是 DDoS 攻击。

解决方案

防止 DDoS 攻击的基本思路是限流,限制单个用户的流量(包括 IP 等)。

5. XXE 漏洞

XXE 漏洞全称 XML 外部实体漏洞(XML External Entity),当应用程序解析 XML 输入时,如果没有禁止外部实体的加载,导致可加载恶意外部文件和代码,就会造成任意文件读取、命令执行、内网端口扫描、攻击内网网站等攻击。

这个只在能够接收 XML 格式参数的接口才会出现。

解决方案

1、禁用外部实体

2、过滤用户提交的XML数据

6、JSON 劫持

JSON 劫持(JSON Hijacking)是用于获取敏感数据的一种攻击方式,属于 CSRF 攻击的范畴。

原因

一些 Web 应用会把一些敏感数据以 json 的形式返回到前端,如果仅仅通过 Cookie 来判断请求是否合法,那么就可以利用类似 CSRF 的手段,向目标服务器发送请求,以获得敏感数据。

比如下面的链接在已登录的情况下会返回 json 格式的用户信息:

http:
//www.test.com/userinfo

攻击者可以在自己的虚假页面中,加入如下标签:

<script
 
src
=
"http://www.test.com/userinfo"
></script>

如果当前浏览器已经登录了www.test.com,并且 Cookie 未过期,然后访问了攻击者的虚假页面,那么该页面就可以拿到 json 形式的用户敏感信息,因为script标签会自动解析 json 数据,生成对应的 js 对象。然后再通过:

Object
.prototype.__defineSetter__

这个函数来触发自己的恶意代码。

但是这个函数在当前的新版本 Chrome 和 Firefox 中都已经失效了。

解决方案

1、X-Requested-With 标识

2、浏览器 JSON 数据识别

3、禁止 Javascript 执行 JSON 数据

7、暴力破解

这个一般针对密码而言,弱密码(Weak Password)很容易被别人(对你很了解的人等)猜到或被破解工具暴力破解。

解决方案

1、密码复杂度要足够大,也要足够隐蔽

2、限制尝试次数

8、HTTP 报头追踪漏洞

HTTP/1.1(RFC2616)规范定义了 HTTP TRACE 方法,主要是用于客户端通过向 Web 服务器提交 TRACE 请求来进行测试或获得诊断信息。

当 Web 服务器启用 TRACE 时,提交的请求头会在服务器响应的内容(Body)中完整的返回,其中 HTTP 头很可能包括 Session Token、Cookies 或其它认证信息。攻击者可以利用此漏洞来欺骗合法用户并得到他们的私人信息。

解决方案

禁用 HTTP TRACE 方法。

9、信息泄露

由于 Web 服务器或应用程序没有正确处理一些特殊请求,泄露 Web 服务器的一些敏感信息,如用户名、密码、源代码、服务器信息、配置信息等。

所以一般需注意:

  • 应用程序报错时,不对外产生调试信息
  • 过滤用户提交的数据与特殊字符
  • 保证源代码、服务器配置的安全

10、目录遍历漏洞

攻击者向 Web 服务器发送请求,通过在 URL 中或在有特殊意义的目录中附加../、或者附加../的一些变形(如..或..//甚至其编码),导致攻击者能够访问未授权的目录,以及在 Web 服务器的根目录以外执行命令。

11、命令执行漏洞

命令执行漏洞是通过 URL 发起请求,在 Web 服务器端执行未授权的命令,获取系统信息、篡改系统配置、控制整个系统、使系统瘫痪等。

12、文件上传漏洞

如果对文件上传路径变量过滤不严,并且对用户上传的文件后缀以及文件类型限制不严,攻击者可通过 Web 访问的目录上传任意文件,包括网站后门文件(webshell),进而远程控制网站服务器。

所以一般需注意:

  • 在开发网站及应用程序过程中,需严格限制和校验上传的文件,禁止上传恶意代码的文件
  • 限制相关目录的执行权限,防范 webshell 攻击

13、其他漏洞

1、SSLStrip 攻击

2、OpenSSL Heartbleed 安全漏洞

3、CCS 注入漏洞

4、证书有效性验证漏洞

14、业务漏洞

一般业务漏洞是跟具体的应用程序相关,比如参数篡改(连续编号 ID / 订单、1 元支付)、重放攻击(伪装支付)、权限控制(越权操作)等。

15、框架或应用漏洞

  • WordPress 4.7 / 4.7.1:REST API 内容注入漏洞
  • Drupal Module RESTWS 7.x:Remote PHP Code Execution
  • SugarCRM 6.5.23:REST PHP Object Injection Exploit
  • Apache Struts:REST Plugin With Dynamic Method Invocation Remote Code Execution
  • Oracle GlassFish Server:REST CSRF
  • QQ Browser 9.6:API 权限控制问题导致泄露隐私模式
  • Hacking Docker:Registry API 未授权访问

如果你在计算机论文写作方面遇到问题可以找我沟通!

rupal 8现在适合现代PHP标准、面向对象编程和Symphony 2框架的基本因素。Drupal 8对面向对象概念的集成帮助开发人员重用和维护在过程编程中不可能的代码。由于新的升级,Drupal 8的后端变得强大,可以提升页面缓存。

为了考虑在CMS开发中使用这个流行的框架,我们已经汇编了一个您需要了解的所有特性的列表。

1.用细枝改进主题

小枝是Drupal 8中添加的一个基于PHP的快速、灵活、安全的模板引擎。通过提供安全和极快的功能,Twig的加入使得开发人员很容易用Drupal创建一个网站。在Drupal 8中,有了Twig,你可以获得一个全新的主题化方法。对于任何非PHP熟练用户来说,在Drupal网站中管理主题变得比以往任何时候都更容易。

2.多语言能力

Drupal 8加载了多种内置语言,为使用Symphony的用户节省了时间和精力,Symphony有一个叫作翻译的底层元素,可以创建多语言网站,帮助你用多种语言展示网站内容。使用Symphony,您可以翻译从内容到块、菜单到分类的所有内容。您甚至可以翻译网站上的用户配置文件、图像样式、视图、文本格式、注释和提要。简而言之,Drupal 8提供了整个网站的翻译。

3.大管道模块

Drupal 8的发布提高了Drupal的水平,因为新版本集成了BigPipe模块。脸书发明了BigPipe它已经成为最快页面加载最流行的方法。在Drupal 8中,您会发现BigPipe是一个独立的模块,可以为您提供更好的用户体验。它现在是Drupal 8不可分割的一部分,不同于它以前的版本,因为您不必通过Drupal核心手动启用它。

4.Drupal 8有了HTML 5的新翅膀

Drupal 8现在有了最好的HTML版本。HTML5提供了一种简化的语法来帮助您分发干净的代码。我们可以说,Drupal 8的跨浏览器能力归功于HTML 5。HTML 5的加入也有助于搜索引擎轻松阅读代码,提高网站的搜索引擎优化排名。现在,您可以轻松添加信息、电子邮件、联系信息等字段。

5.高级配置管理

在Drupal 7中,许多开发人员都面临着配置管理问题。Drupal 8以一种独特的方式存储站点的配置数据。在配置系统的开发工作流中使用了Git和Drush这样的工具。内置表单管理管理用户界面提供的站点配置。您可以以简单的配置模式存储内容、缓存、状态、结构和会话等数据,并轻松导入和导出所需的功能。

6.简化的创作体验

DRUPAL 8现在由内容编辑器、所见即所得编辑器和DRUPAL中的CKEditor组成,帮助您管理网站的内容和工作流。就地编辑功能对内容编辑器非常有帮助,使任何内容创建者都可以编辑任何页面的文本,而无需切换到完整的编辑表单。现在,用户可以在很短的时间内轻松创建草稿。

7.视图是Drupal核心的一部分

视图是任何网站项目不可或缺的一部分。默认情况下,它在Drupal中可用,大多数Drupal管理屏幕使用视图来使它们易于定制。在新的Drupal 8特性中,Views现在已经与Drupal 8核心紧密集成。Drupal 8的首页和管理页面现在是视图,可以帮助你快速创建页面、块、管理部分等。,并毫不费力地修改现有的。

8.内置网络服务

现在网络服务更重要了。网络服务现在已经成为Drupal 8不可或缺的一部分,因为它将自己用作数据源,并将内容显示为JSON或XML。您可以使用前端来发布数据,并且可以在Drupal 8中实现超文本应用程序语言(HAL)来尽可能地简化网络服务。

9.移动-从一开始就优先

Drupal 8中的内置主题响应迅速,管理主题适应不同的屏幕大小。您有一个“返回站点”按钮来帮助用户返回首页。这些桌子适合任何屏幕尺寸和小工具,而且新的管理工具在移动设备上运行良好。

10.更好地支持可访问性

Drupal 8提供了对行业标准可访问性技术的访问,比如WAI-ARIA。ARIA实时公告应用编程接口和选项卡管理器,为广泛的互联网应用程序提供控制。更好的字体大小、调整的颜色对比、jQuery用户界面的自动完成和模态对话框等功能使Drupal 8成为一个易于使用的内容管理系统。

11.新字段

字段被称为Drupal内容管理系统的构建模块。Drupal 8现在在Drupal 8核心中有了新的字段类型,命名为日期、电子邮件、链接、引用、电话。Drupal 8还使您能够在更多的地方添加字段,如节点、块、注释、联系人表单、分类术语和用户。

12.导游

新加入Drupal?现在,您可以使用链接“tour”进行游览,一个弹出窗口将会出现,帮助您了解Drupal 8的独特功能是如何工作的。这个用户友好的特性是有益的,因为它允许开发人员了解如何开发内容管理系统。

13.加载速率

Drupal 8不会不必要地加载JavaScript并缓存所有实体。意思是,当一个页面被查看时,没有必要再次重新加载内容。一旦您配置并启用了它,缓存就完全自动了。

14.行业标准

Drupal 8完全符合最新的PHP 7标准,如PSR-4、名称空间和特性。Drupal 8使用顶级的、优秀的外部库,如PHPUnit、Guzzle、Composer、Zend Feed Component、Assetic等。

15.自动JavaScript测试

自动化测试在以前的Drupal版本中是不可能的。在Drupal 8中,JavaScript (JS)自动化测试现在已经成为可能,测试人员可以自动测试JavaScript前端,以帮助他们节省时间,让持续集成变得更加容易。

16.响应图像

在Drupal 7中,图像样式是自动调整图像大小的核心。在Drupal 8中,用户可以为个人照片选择不同的类型。您可以为不同的设备尺寸使用不同的样式和尺寸。

18.自动包装

在Drupal 8中,您不必手动创建单独的功能。自动打包功能分析您的网站,您的网站配置被打包成一组功能。

19.内置互操作性

在Drupal 8中,您可以混合和匹配设置为其他特性的特性。默认情况下,Drupal 8提供已配置的插件来帮助您构建特性的最佳实践,这些特性将为互操作性打开新的可能性。

20.对功能机的支持

在Drupal 8中,特性或捆绑包不限于特定的特性。现在,功能支持包-共享一个名称空间的功能集。

21.媒体库

Drupal用户一直在寻找媒体处理功能。在Drupal 8中,你会发现它的核心有一个“媒体库”模块。媒体处理功能是核心,因此您必须启用该模块。

22.演示数据

在Drupal 8中,您可以安装Drupal并获得一个完整的演示站点来探索。如果您正在安装浏览器,您将看到一个新选项:“演示:鲜味美食杂志”。您还会发现几个用实例视图创建的登录页面,看起来比简单的Drupal安装好得多。

结论

这些是Drupal 8中新增的一些功能。我们希望您会发现这些功能很有帮助,并能够创建您的内容管理系统。这些特性也是您应该将您的Drupal版本升级到Drupal 8的原因。