低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

Rail ActionPack 参数解引发多种漏洞

2013 年 1 月 24 日

1 月 8 日,Rails 团队核心成员 Aaron Patterson 公布了 CVE-2013-0156 ,这是一个由 ActionPack 参数解引发的多种漏洞,并且影响版本十分广泛,包括 3.0、3.1、3.2 以及很久没有更新的 2.3 系列。

漏洞的影响

  • 绕过授权系统
  • 注入任意 SQL 语句
  • 拒绝服务攻击
  • 执行任意 Ruby 代码

其中,可以远程执行任意 Ruby 代码(当然包括 Shell 命令,因为 Ruby 可以调用系统 Shell 命令)这一漏洞让大部分开发者和网站感到恐慌,一些网站采取下线的极端应对措施,其中包括荷兰政府的公民数字身份网站

Webrat 的作者 @brynary 在他的博客 中总结了这次漏洞的严重性:

  • 可利用性:容易,攻击脚本随处都可以找到,并且容易使用,只需要传入攻击目标网站的 URL 和想要执行的代码;
  • 影响范围:广泛,所有没升级到最新版本的 Rails 项目都受到影响;
  • 可检测性:容易,不需要和应用相关的知识,就可以实施自动化扫描来检测目标网站是否存在此漏洞;
  • 技术上的影响:严重,攻击者可以应用服务器的权限执行任何 Ruby(当然也可以是 Shell) 脚本,从而劫持整个主机;
  • 商业上的影响:严重,数据可以被窃取,服务器资源可以被攻击者用作恶意用途。

漏洞产生原理

  1. Rails 在解析 XML 的时候是会解析 XML 里内嵌的 YAML 文件的,这要追溯到这个补丁
  2. Ruby 的 YAML Parser 可以创建出任意对象,只要这个类在程序内存中有定义。

这样,攻击者就可以通过提交一个 XML 文件,通过 XML 里内嵌的 YAML 文件来创建一个含有不安全代码的对象,利用 Rails 内部的实现细节触发代码执行来实施攻击。这里是 ronin 提供的漏洞利用的详细代码: https://gist.github.com/4499206

漏洞防御措施

如果是 Rails3 项目,直接升级到最新版本。如果是 Rails2.3 项目,升级到最新版本比较麻烦,可以在项目初始化加载时添加下面两行代码:

复制代码
ActiveSupport::CoreExtensions::Hash::Conversions::XML_PARSING.delete('symbol')
ActiveSupport::CoreExtensions::Hash::Conversions::XML_PARSING.delete('yaml')
2013 年 1 月 24 日 10:58543

评论

发布
暂无评论
发现更多内容

Spring Cloud微服务实战

田维常

微服务

区块链商城系统开发模式制作

系统开发咨询:I76-883I-5I52 邓森

基于App SDK和API搭建无人自习室等无人场景

IoT云工坊

物联网 智慧琴房 24小时无人自习室 24小时自助游戏厅 共享办公室

阿里技术官亲荐“998页的应届生面试手册”看完才发现,原来求职也没那么难!

比伯

Java 程序员 面试 编程语言 计算机

【年终总结】mybatis常见注解

田维常

mybatis

秒杀系统设计的挑战和问题(转载)

jorden wang

KKR四币连发挖矿系统软件APP开发

开發I852946OIIO

系统开发

Kafka的控制器controller详解

数据社

kafka 七日更

带宽、延时、吞吐率、PPS 这些都是啥?

小林coding

Linux 操作系统 网络

anyRTC加持AI,打造下一代实时音视频引擎

anyRTC开发者

人工智能 android 音视频 WebRTC RTC

等不到明年金三银四了!五面滴滴之路,爆砍37K+16薪Offer

Java架构追梦

Java 学习 架构 面试 滴滴

源码输出纯净版SSM架构,收藏直接CV使用它不香吗?

小Q

Java 学习 编程 面试 ssm

SQL:我为什么慢你心里没数吗?

Java架构师迁哥

物联网打工人必备:LiteOS Studio图形化调测能力

华为云开发者社区

互联网 LiteOS 打工人

完全懵掉的电话面试

escray

面经 面试经历 101次面试 七日更 十日谈

堪称完美!阿里架构师亲自手撕”Spring Boot实战笔记“用60个案例给你整的明明白白

比伯

Java 编程 程序员 架构 技术宅

区块链多币种钱包app系统开发

系统开发咨询:I76-883I-5I52 邓森

还记得你的时间胶囊吗?

熊斌

个人成长 七日更

必须清除互联网世界的毒瘤:网络谣言背后存在病态心理

石头IT视角

5. 穿过拥挤的人潮,Spring已为你制作好高级赛道

YourBatman

Spring Framework 类型转换 Converter

被阿里、腾讯、华为追捧为最牛逼的 Java 框架你知道是什么吗?

Java架构师迁哥

一文带你了解传统手工特征的骨龄评估方法的发展历史

华为云开发者社区

方法 骨龄 评估

组态软件特征分析!同样都是拖拉拽,为什么别人的页面这么好看?

一只数据鲸鱼

物联网 数据采集 监控管理平台 组态软件

源码解析Synchronized同步方法的八种使用场景,收藏

小Q

Java 学习 架构 面试 多线程

源码解析Synchronized同步方法的八种使用场景,收藏

996小迁

Java 源码 架构 面试 synchronized

IPFS质押挖矿系统开发方案

系统开发咨询:I76-883I-5I52 邓森

BitQy交易所软件系统开发|BitQy交易所APP开发

开發I852946OIIO

iOS 崩溃分析

ios 崩溃分析

干货时间:聊聊DevOps下的技术系列之契约测试

华为云开发者社区

DevOps 测试 交互

裸辞在家闭关,啃下这些面试笔记,终,拿到字节跳动4面offer

Crud的程序员

Java java面试 程序员面试

字节跳动的这份《算法中文手册》火了,完整版PDF开放下载!不少小伙伴靠这份指南成功掌握了算法的核心技能,成功拿到了 BATJ等大厂offer。

Java成神之路

Java 程序员 架构 面试 编程语言

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

Rail ActionPack参数解引发多种漏洞-InfoQ