IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Metinfo5.3.10版本Getshell

    没穿底裤发表于 2016-11-08 15:32:57
    love 0

    好久没代码审计了,今早上cheery师傅跟我说了一下这个洞,尽管这个洞已经被修复了,但是还是比较新的,看了下没那么难,就简单写下步骤:

    0x01

    首先看一下配置的文件include/common.inc.php

    QQ图片20161108231615

    发现Metinfo采用了伪全局变量的这样一个设置,那么是否会有变量覆盖之类的漏洞,grep下:

    QQ图片20161108231632

    0x02

    觉得login那里应该会发生点什么故事XD

    既然这样的话,看了下后台登录的地方:

    1. login.php
    2. login_check.php
    3. login_out.php

    0x03

    一共三个文件,看一下check,既然包含了common.inc.php,那么就意味着里面存在一些可控的变量:

    QQ图片20161108231653QQ图片20161108232438

    果不其然,对于参数并没有初始赋值,比较开心XD

    研究了下发现有两种做法:

    0x01:知道路径的话:

    既然可以require,那么我们需要一个文件就可以执行,so,注册一下会员,看看有没有什么惊喜的东西XD

    发现可以上传图片logo:

    QQ图片20161108232438

     

    既然这样的话,我们可以上传一个利用phar或者zip打包的文件,从而达到RCE的目的:

    QQ图片20161108231722QQ图片20161108231733

    然后file_put_contents或者一开始就用file_put_contents拿到一个shell。

    0x02不知道路径

    貌似是不能用../去代替的,如果有师傅成功的话,求交流。

    在这种情况下,我们可以用php的伪协议去达到一些我们想达到的目的,不过allow_url_include默认是不开启的,所以也算有点鸡肋,不过CTF比赛可以用一下。

    如果allow_url_include = on,那么我们可以利用base64让后面的../失效,从而达到RCE,具体可以自己试一下:)



沪ICP备19023445号-2号
友情链接