HACK80

我们很年轻,但我们有信念、有梦想!

我们坚信只有今天付出了,才有机会看到明天的太阳!
现在!加入我们,给你一个气氛优秀的技术圈子

作者: djg222000
查看: 44|回复: 0

more +随机图赏Gallery

2017年中旬WEB渗透系列课程-26Mysql下UDF提权2017年中旬WEB渗透系列课程-26Mysql下UDF提权
2017年中旬WEB渗透系列课程-25基于php参数开关的提权2017年中旬WEB渗透系列课程-25基于php参数开关的提权
2017年中旬WEB渗透系列课程-24提权分类2017年中旬WEB渗透系列课程-24提权分类
2017年中旬WEB渗透系列课程-23提权认识2017年中旬WEB渗透系列课程-23提权认识
2017年中旬WEB渗透系列课程-22CMS相关2017年中旬WEB渗透系列课程-22CMS相关
2017年中旬WEB渗透系列课程-21webshell免杀相关问题2017年中旬WEB渗透系列课程-21webshell免杀相关问题
2017年中旬WEB渗透系列课程-20关于指令执行2017年中旬WEB渗透系列课程-20关于指令执行
2017年中旬WEB渗透系列课程-19文件包含与目录遍历2017年中旬WEB渗透系列课程-19文件包含与目录遍历
2017年中旬WEB渗透系列课程-18上传绕过方法演示2017年中旬WEB渗透系列课程-18上传绕过方法演示
2017年中旬WEB渗透系列课程-17了解上传检测方式2017年中旬WEB渗透系列课程-17了解上传检测方式

DC-2017-04-003:Magento任意文件上传导致远程代码执行漏洞

[复制链接]
djg222000 发表于 7 天前 | 显示全部楼层 |阅读模式
查看: 44|回复: 0

马上注册,加入HACK80!与我们一起交流。

正式会员需要 登录 才可以下载或查看,没有帐号?立即注册

x
0x01 概述
在Magento社区版的安全审计期间,我们发现存在着一个跨站请求伪造漏洞(CSRF)并且有可能导致远程代码执行,从而完成系统的控制,这可能导致社区账号密码和敏感客户信息数据库(例如存储的信用卡号码和其他支付信息)泄露的高风险漏洞,而且这个漏洞影响Magento社区版2.16和2.16以下的版本。
Magento是一个开源的电子商务平台,为在线商家提供灵活的购物车系统,使商家可以容易的控制其在线商店的外观,内容和功能。Magento提供强大的营销,搜索引擎优化和目录管理工具。它是领先的企业级电子商务平台,拥有超过20万个在线零售商。
0x02 漏洞描述跨站点请求伪造
通过将请求方法从POST更改为GET,因为缺少用作CSRF令牌的form_key参数会被忽略,从而实现跨站点请求伪造(CSRF)攻击。攻击可以像电子邮件或公共留言板中的<img src =...一样简单,如果用户当前登录到Magento,它将自动触发任意文件上传。攻击者也可以使用社会工程诱使用户来打开CSRF链接。
防御方法:CSRF攻击向量可以通过默认启用的选项将密钥添加到URL来缓解。
远程代码执行
利用此漏洞不需使用任何Magento管理面板用户,也无需分配账号和权限就可以用administrative管理访问权限来利用此漏洞,从而访问远程映像检索功能。因此,获得低权限访问就可以使攻击者能够破坏整个系统或数据库(例如遍历到/app/etc/env.php以获取数据库密码)。
0x03 漏洞分析
将Vimeo视频内容添加到新产品或现有产品时,应用程序将使用POST请求自动检索视频的预览图像,获取远程图像URL参数。当请求方法更改为GET,那么请求发送变成如下:
http://192.168.1.10/magento2/admin_1bcbxa/product_video/product_gallery/retrieveImage/?remote_image=https://i.vimeocdn.com/video/438193448_640.jpg
如果URL指向无效图像(例如,PHP文件),则应用程序将响应:
{"error":"Disallowed file type.","errorcode":0}
但是,不管应用程序如何保存文件来进行验证图像,这个文件都会被下载,而且如果验证失败,也不会将其删除。该文件将保存到以下位置:
/pub/media/tmp/catalog/product/<X>/<Y>/<original filename>
其中X和Y是文件名的前两个字符(例如,如果文件名为picture.jpg,路径将是/p/i/picture.jpg)。此行为允许使用PHP脚本远程代码执行或者插入存储型跨站脚本或恶意软件托管。
要实现远程代码执行这个漏洞,要下载两个文件。一个是.htaccess文件,它可以在下载目录中启用PHP执行,另一个是执行的PHP脚本。由于这些文件需要保存在同一个目录下,所以PHP脚本文件名应该以“.h”(但不是“.ht”!)开头,因此它将被放在/pub/media/tmp/catalog/product/_/h/(‘.’会被替换为’_‘) 。根据服务器配置,.htaccess文件可以很简单获得:
php_flag engine 1
PHP脚本的概念证明是:
<?php echo shell_exec($_GET['cmd']); ?>
并访问为:
http://192.168.1.10/magento2/pub/media/tmp/catalog/product/_/h/.hshell.php?cmd=whoami
Magento源代码分析也证实了这个漏洞。下面是RetrieveImage.php中有问题的函数:
0x04 总结
尚未解决最新版本中报告的安全问题。强烈建议所有用户强制使用“添加密文密钥到URL”,以减轻CSRF攻击向量。为防止通过任意文件上传远程代码执行,应将服务器配置为不受影响目录中的.htaccess文件。
由Bosko Stankovic发现(bosko@defensecode.com)。
公开时间表
11/18/2016供应商通过BugCrowd平台联系
11/18/2016供应商回应意识到问题
04/11/2017供应商再次联系没有回应
04/13/2017咨询向公众公布

正式会员需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|HACK80 ( 沪ICP备15007512号 )

GMT+8, 2017-10-19 15:11 , Processed in 0.064591 second(s), 27 queries .

Powered by Discuz! X3.2 © 2001-2013 Comsenz Inc.