Ruby On Ralis远程代码执行研究(CVE-2016-0752)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Ruby On Ralis远程代码执行研究(CVE-2016-0752),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2024字,纯文字阅读大概需要3分钟。
内容图文
环境搭建参考:https://www.b1uew01f.net/learnnotes/tips/281.html
环境
1.什么是Ruby?
Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,上世纪90年代由一位日本人设计。
2.搭建
环境久远,现在Ruby的更新使得一些内容不支持,搭建成功的环境也可能无法复现漏洞
提示:不知道Ruby on Ralis环境运行方式的话,就无法从根本解析漏洞,因此环境还是需要搭建的
上面文章也有些微小的错误,且文章久远环境版本会出错,我搭建的步骤如下:
RVM安装环境
sudo gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 13E2069D6956105BD0E739499BDB curl -L https://get.rvm.io | bash -s stable source /etc/profile.d/rvm.sh
rvm -v #查看版本
RVM安装Ruby环境
rvm install 2.4.2
或是自动安装
apt install ruby-full
设置默认版本
rvm 2.4.2 --default
安装bundler
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/ #gem切换可用的源
gem install bundler
安装Rails
gem install rails
随便新建一个文件夹进入,用以下命令创建一个应用
rails new hello_world_2
修改/hello_world_2文件夹下的/config/boot.rb文件,使得监听在 0.0.0.0
启动web server,访问网页报错
解决办法,修改目录下Gemfile
然后
bundle update
访问ip:12345正常出现的网页:
创建名为“welcome”的控制器和一个名为“index”的动作
修改视图为任意网页内容,访问后可正常显示
漏洞的存在
参考乌云:https://wooyun.x10sec.org/static/drops/papers-12519.html
渲染机制
动态渲染路径的问题,控制器中的代码:
def show render params[:template] end
对比自己的控制器:
渲染视图时,采用渲染 template
参数指定 view 模板,即会对目录下相关文件进行读取,像上面搭建视图时,读取的就是app/views/welcome/index.html.erb文件。
但是不同的是如果它无法找到文件,则会在RAILS_ROOT/app/views
,RAILS_ROOT
和系统根目录中搜索能访问的文件。
因此我们可以读取主机上的敏感目录,如/etc/passwd
尝试在新版本的Ralis上新建一个控制器和视图文件
rails generate controller users dashboard
修改控制器
能正常访问
但是漏洞已经不存在,只能在老版本中操作,实际上漏洞也属于文件包含漏洞
此外当传入的URL包含恶意代码时可以执行想要的命令
<%%>之间可以写入服务器端代码
URL传入编码的参数
<%= \`ls\` %>
则会执行查看目录下文件,同理最终可以得到shell
内容总结
以上是互联网集市为您收集整理的Ruby On Ralis远程代码执行研究(CVE-2016-0752)全部内容,希望文章能够帮你解决Ruby On Ralis远程代码执行研究(CVE-2016-0752)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。