cve-2018-7600 drupal核心远程代码执行漏洞分析
0x01 漏洞介绍
Drupal是一个开源内容管理系统(CMS),全球超过100万个网站(包括政府,电子零售,企业组织,金融机构等)使用。两周前,Drupal安全团队披露了一个非常关键的漏洞,编号CVE-2018-7600 Drupal对表单请求内容未做严格过滤,因此,这使得攻击者可能将恶意注入表单内容,此漏洞允许未经身份验证的攻击者在默认或常见的Drupal安装上执行远程代码执行。
0x02 漏洞分析
Drupal渲染数组的情况有页面加载和Ajax表单发出的请求,在这里Ajax API调用是攻击者最佳的选择。那么作为用户注册表单的一部分,图片字段使用Ajax API将图片上传到服务器,并且生成缩略图
查阅了相关文档资料现在,我们所要做的就是注入一个恶意渲染数组,该数组使用Drupal的渲染回调方法在系统上执行代码。有几个属性我们可以注入:
- #access_callback
由Drupal使用来确定当前用户是否有权访问元素。 - #pre_render
在渲染之前操作渲染数组。 - #post_render
接收渲染过程的结果并在其周围添加包装。 - #lazy_builder
用于在渲染过程的最后添加元素。 - #access_callback 标签虽然callback回调函数可控,但需要回调处理的字符串不可控,导致无法利用。以下场景以post_render和lazy_builder为例
2.1、漏洞场景1:引入#post_render
#post_render
这个API标签可以被所有的元素和表单使用,它是在drupal_render()方法中调用,可以渲染当前元素和子元素,也可对内容进行修改。
例子中$ element通过调用admin_form_html_cleanup函数处理返回处理后的结果。再来看可以触发攻击载荷的代码,在渲染的过程中调用了call_user_func进行回调处理,但$callable 回调函数通过表单伪造,$elements的子元素同样也是通过表单可控
攻击者利用攻击载荷 mail[#post_render][]=passthru&mail[#type]=markup&mail[#markup]=whoami ,这里的#markup是当前元素#type的子元素,通过数组的方式传入值,执行过程如图
魔术方法__toString得到$this->string 等于whoami ,带入到call_user_func中交给passthru函数执行,导致漏洞触发
PHP内置函数pasthru执行后会回显结果
2.2、漏洞场景2:引入#lazy_builder
- #lazy_builder 可选,数组值,必须有且只有两个元素,一个是回调函数名,一个回调的参数,参数只能是NULL或者标量类型
- $callable变量取#lazy_builder元素标签数组下标0的值作为回调函数名,取数组下标1的值当回调方法的参数, 下面攻击载荷调用PowerShell 远程下载文件到本地保存为php网页后门,代码如下图
我们传入的lazy_builder[0]和lazy_builder[1]的值在渲染的时候用call_user_func_array完成整个攻击过程
整个漏洞的产生过程都是因为call_user_func或者call_user_func_array等回调函数导致的任意代码执行,API元素标签中可能还会触发漏洞的标签有#theme 、#create_placeholder、#theme_wrappers等等。
0x04 缓解措施
官方在最新版本8.5.1中增加了下图方法
对请求的GET、POST、COOKIE 进行过滤处理
cve-2018-7600 drupal核心远程代码执行漏洞分析相关推荐
- Joomla远程代码执行漏洞分析小白版(小宇特详解)
Joomla远程代码执行漏洞分析小白版(小宇特详解) 今天看了一下2021陇原战役WP,在看web方向的时候,看到pop链,想了解一下,后来又看到了p师傅在15年的一篇文章,在这里记录一下.这里主要是 ...
- drupal cve-2018-7600 远程代码执行漏洞 简介
漏洞分析 Drupal 在 3 月 28 日爆出一个远程代码执行漏洞,CVE 编号 CVE-2018-7600,通过对比官方的补丁,可以得知是请求中存在 # 开头的参数.Drupal Render A ...
- Drupal 修复远程代码执行漏洞
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 周三,Drupal 内容管理系统 (CMS) 发布更新,修复了和不正确清理所上传文件名称有关的一个远程代码执行漏洞 (CVE-2020 ...
- wordpress 5.0.0 远程代码执行漏洞分析cve-2019-8943
近日,wordpress发布一个安全升级补丁,修复了一个WordPress核心中的远程代码执行漏洞.代码修改细节可以参考wordpress团队于Dec 13, 2018提交的代码.据漏洞披露者文中所介 ...
- cve-2019-1821 思科 Cisco Prime 企业局域网管理器 远程代码执行 漏洞分析
前言 不是所有目录遍历漏洞危害都相同,取决于遍历的用法以及用户交互程度.正如你将看到,本文的这个漏洞类在代码中非常难发现,但可以造成巨大的影响. 这个漏洞存在于思科Prime Infrastructu ...
- CVE-2012-1876Microsoft Internet Explorer Col元素远程代码执行漏洞分析
Microsoft Internet Explorer是微软Windows操作系统中默认捆绑的WEB浏览器. Microsoft Internet Explorer 6至9版本中存在漏 ...
- php excel中解析显示html代码_骑士cms从任意文件包含到远程代码执行漏洞分析
前言 前些日子,骑士cms 官方公布了一个系统紧急风险漏洞升级通知:骑士cms 6.0.48存在一处任意文件包含漏洞,利用该漏洞对payload文件进行包含,即可造成远程代码执行漏洞.这篇文章将从漏洞 ...
- goahead处理json_GoAhead Web Server远程代码执行漏洞分析(附PoC)
*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担. 本文是关于GoAhead web server远程代码执行漏洞(CVE-2017- ...
- rmi远程代码执行漏洞_Apache Solr反序列化远程代码执行漏洞分析(CVE20190192)
更多全球网络安全资讯尽在邑安全 www.eansec.com 0x01 漏洞描述 Solr 是Apache软件基金会开源的搜索引擎框架,其中定义的ConfigAPI允许设置任意的jmx.se ...
最新文章
- IIS配置相关问题:Framework 4.5 在IIS 7.5中运行
- 如何提高PyTorch“炼丹”速度?这位小哥总结了17种方法,可直接上手更改的那种...
- python import出错_python import的一些问题
- 一个分布式服务器集群架构方案
- 微型计算机性能指标以及分类
- Java Web开发技术详解~Web的概念
- matlab案例_基于matlab和frost平台的cassie案例足式机器人运动学和动力学计算实现过程...
- mysql-启动、关闭与重启
- 大数据之-Hadoop完全分布式_Crondtab定时任务调度---大数据之hadoop工作笔记0042
- [转载] python模板字符串和格式化字符串
- Atitit.预定义变量与变量预处理器
- 小程序源码:首席省钱赚钱专家微信小程序源码下载,淘宝客 外卖侠 外卖cps -多玩法安装简单
- arm交叉编译工具链的选择
- Android 高通配置SUPL
- 愚人节html源码,开源中国愚人节网页变模糊的js blur代码
- 网站监控程序uptime-kuma,宝塔面板搭建 ,TCP/HTTP监控
- [已解决]消除Flutter Sliver之间存在的间隙
- WiFi探针的原理与安全
- 安迪种树 前缀和 差分
- dbpedia知识图谱java_中文通用百科知识图谱(CN-DBpedia)