• Ruby On Ralis远程代码执行研究(CVE-2016-0752)


    环境搭建参考: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/viewsRAILS_ROOT和系统根目录中搜索能访问的文件。

    因此我们可以读取主机上的敏感目录,如/etc/passwd

    尝试在新版本的Ralis上新建一个控制器和视图文件

    rails generate controller users dashboard

    修改控制器

    能正常访问

    但是漏洞已经不存在,只能在老版本中操作,实际上漏洞也属于文件包含漏洞

    此外当传入的URL包含恶意代码时可以执行想要的命令

    <%=%>之间可以写入服务器端代码

    URL传入编码的参数

    <%= \`ls\` %>

    则会执行查看目录下文件,同理最终可以得到shell

    [Sign]做不出ctf题的时候很痛苦,你只能眼睁睁看着其他人领先你
  • 相关阅读:
    Python 多线程学习(转)
    自己使用python webob,paste.deploy,wsgi总结
    Python中*args 和**kwargs的用法
    python 数字和字符串转换问题
    python socket编程
    深入解读Quartz的原理
    解决get方法传递URL参数中文乱码和解决tomcat下中文乱码问题
    Tomcat的Manager显示403 Access Denied
    mysql5.6 linux下安装笔记
    Quartz应用与集群原理分析
  • 原文地址:https://www.cnblogs.com/echoDetected/p/14407748.html
Copyright © 2020-2023  润新知