phpok4.9后台getshell(每周一洞)

admin 2023年12月14日13:34:13评论15 views字数 1294阅读4分18秒阅读模式

0x01 前言

昨天看到phpok可以申请cve就去审计了一下,存在漏洞的地方还是挺多的,时间不多找了个简单的任意文件上传漏洞。

0x02 环境

  1. 程序下载:https://www.lanzous.com/i1ksjkd
  2. 集成环境是PHPstudy,PHP5.6。
  3. 安装程序

phpok4.9后台getshell(每周一洞)
phpok4.9后台getshell(每周一洞)
4. 先创建一个数据库phpok
phpok4.9后台getshell(每周一洞)
phpok4.9后台getshell(每周一洞)
5. 设置管理员账号密码
phpok4.9后台getshell(每周一洞)
6. 安装成功

0x03 漏洞挖掘过程

  1. 打开打开FolderChangesView记录程序的文件变动。

  2. 登录后台
    程序升级->压缩包升级

  3. 编辑一个测试文件phpinfo.php,压缩为phpinfo.zip上传。

  4. 点击上传,压缩包里面的文件会被压缩到网站根目录

  5. 访问根目录下新生成的文件

0x04 漏洞分析

漏洞代码出现在framework/admin/update_control.php文件的unzip_f函数,可以看到用到lib里面的phpzip类,有兴趣可以去读下源码framework/libs/phpzip.php
大家可能疑问你怎么知道漏洞文件是这个,可以抓包来查看整过利用的过程,然后再去源码分析。
phpok4.9后台getshell(每周一洞)

public function unzip_f()
{
$zipfile = $this->get('zipfile');
if(!$zipfile){
$this->error(P_Lang('未指定附件文件'));
}
if(strpos($zipfile,'..') !== false){
$this->error(P_Lang('不支持带..上级路径'));
}
if(!file_exists($this->dir_root.$zipfile)){
$this->error(P_Lang('ZIP文件不存在'));
}
$this->lib('phpzip')->unzip($this->dir_root.$zipfile,'data/update/');
$info = $this->update_load();
if(!$info || (is_array($info) && $info['status'] == 'error')){
$this->error($info['content']);
}
$this->success();
}

可以看到用到lib里面的phpzip类,有兴趣可以去读下源码framework/libs/phpzip.php

0x05 结束

这个程序也不难,可以大概浏览下后台有什么功能再去测试,如果还是没能发现什么,就从入口文件一步步去分析。

0x06 参考

程序下载:https://www.lanzous.com/i1ksjkd


  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月14日13:34:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   phpok4.9后台getshell(每周一洞)https://cn-sec.com/archives/2298377.html

发表评论

匿名网友 填写信息