0x00 简述
近日偶然发现一个开源CMS框架,想拿来练练手巩固一下很久不用的PHP安全知识,找到一处文件上传漏洞,和各位师傅一起学习学习。
CMS代码地址:
https://github.com/taosir/wtcms
主页:
0x01 演示
1、登录后台后,进入注册邮件模板功能
2、使用编辑器上传一张图片,并抓包修改文件名及文件内容
3、访问上传的php文件
0x02 代码分析
/wtcms-master/application/Asset/Controller/UeditorController.class.php
这里用的ueditor进行上传,这里只要保证action是uploadimage、uploadscrawl、uploadvideo、uploadfile中的一个使得能进入_ueditor_upload函数就可以
跟进_ueditor_upload函数,获取上传文件信息后调用了upload函数进行上传
继续跟进upload,最开始是一些常规检查包括文件有无、上传目录等。后面通过pathinfo获取文件后缀名,因为这里我们修改了请求包,所以$file['ext']的值就是php。接着调用了check函数进行上传检测。
这里我们只要看文件后缀名的检查就好了
但是到这里,config['exts']的值没有定义,为null,所以checkExt()会返回true
最后看下文件保存,config['saveExt']的值为空,所以这里取得后缀是之前pathinfo得出的后缀名也就是php,成功在服务器目录下生成php文件
往期精彩
登陆页面的检测及渗透
渗透实战篇(一)
渗透测试信息收集的方法
常见Web中间件漏洞利用及修复方法
内网渗透 | 流量转发场景测试
Waf从入门到Bypass
实战渗透-看我如何拿下学校的大屏幕
技术篇:bulldog水平垂直越权+命令执行+提权
渗透工具实战技巧大合集 | 先收藏点赞再转发一气呵成
感兴趣的可以点个关注!!!
本文始发于微信公众号(安全先师):开源CMS系统源码分析及漏洞利用
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论