Metinfo5.3.10版本Getshell

好久没代码审计了,今早上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,具体可以自己试一下:)

发表评论