0x01 前言
昨天看到phpok可以申请cve就去审计了一下,存在漏洞的地方还是挺多的,时间不多找了个简单的任意文件上传漏洞。
0x02 环境
- 程序下载:https://www.lanzous.com/i1ksjkd
- 集成环境是PHPstudy,PHP5.6。
- 安装程序
4. 先创建一个数据库phpok
5. 设置管理员账号密码
6. 安装成功
0x03 漏洞挖掘过程
-
打开打开FolderChangesView记录程序的文件变动。
-
登录后台
程序升级->压缩包升级
-
编辑一个测试文件phpinfo.php,压缩为phpinfo.zip上传。
-
点击上传,压缩包里面的文件会被压缩到网站根目录
-
访问根目录下新生成的文件
0x04 漏洞分析
漏洞代码出现在framework/admin/update_control.php
文件的unzip_f
函数,可以看到用到lib
里面的phpzip
类,有兴趣可以去读下源码framework/libs/phpzip.php
大家可能疑问你怎么知道漏洞文件是这个,可以抓包来查看整过利用的过程,然后再去源码分析。
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
-
原文作者:
F0rmat -
原文链接:
https://xxe.icu/phpok4.9-background-getshell.html -
版权声明:本作品采用
署名 - 非商业性使用 4.0 国际 (CC BY-NC 4.0)进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论