Ruby On Rails find_by_* SQL Injection (CVE-2012-6496)

admin 2021年4月3日19:25:26评论40 views字数 975阅读3分15秒阅读模式

详情分析链接在此:http://blog.phusion.nl/2013/01/03/rails-sql-injection-vulnerability-hold-your-horses-here-are-the-facts/

RoR,著名的Web开发框架,众所周知的Github,javaeye,csdn部分站点都是使用这个框架开发的。注意这个漏洞是出现在框架的Active Record模式操作数据库模块中的,因此是全框架都中招。

主要攻击模式是,当程序中用到User.find_by_something(params[:id])这种模式的代码时(实际上所有数据库查询操作基本都是这模式的),如果使用类似的代码就会产生注入:

User.find_by_name("kotori", :select => "id, name FROM users; DROP TABLE users; --")

而这个:select是可以和前面的字符串通过一个字典传入的。因此这个就变得可利用了。

但是利用场景很有限,由于需要你带入的字典key也就是:select必须是symbol格式的,而不像是PHP之类都是string。所以必须要找个有序列化字符串可以注入,且反序列化后有被find_by_xxx查询的场景(具体可以看文中给出的EXP链接。思路很yd,我很喜欢。利用的是RoR session会有这个过程。)。因为只有这样,你注入的代码才能被Ruby解释为他的Object,然后才能把你的string的key变成symbol的。

所以,虽然这个漏洞贴出来的时候名头很大,全版本RoR收到影响,但实际上,估计也就开源程序可以被找到类似的苛刻场景吧。

和php unserialize漏洞有异曲同工之妙,不是么? Ruby On Rails find_by_* SQL Injection (CVE-2012-6496)

转自:http://zone.wooyun.org/content/2218

文章来源于lcx.cc:Ruby On Rails find_by_* SQL Injection (CVE-2012-6496)

相关推荐: 【Asp】ASP数字取整函数 Asp数字四舍五入

ASP数字取整函数,Asp数字四舍五入: Int(99.8)  '返回99 Fix(99.2)  '返回99 Int(-99.8) '返回-100 Fix(-99.8) '返回-99 Int(-99.2) '返回-100 Fix(-99.2) '返回-99 文…

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年4月3日19:25:26
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Ruby On Rails find_by_* SQL Injection (CVE-2012-6496)http://cn-sec.com/archives/322378.html

发表评论

匿名网友 填写信息