finecms 5.0.8低版本前台任意文件上传-

本文分析了一个关于前台头像上传功能中存在的任意文件上传漏洞,详细介绍了漏洞利用过程及修复建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前台头像上传的地方任意文件上传

public function upload() {
 
     // 创建图片存储文件夹
     $dir = SYS_UPLOAD_PATH. '/member/' . $this ->uid. '/' ;
     @dr_dir_delete( $dir );
     ! is_dir ( $dir ) && dr_mkdirs( $dir );
 
     if ( $_POST [ 'tx' ]) {
         $file = str_replace ( ' ' , '+' , $_POST [ 'tx' ]);
         if (preg_match( '/^(data:\s*image\/(\w+);base64,)/' , $file , $result )){
             $new_file = $dir . '0x0.' . $result [2];
             if (!@ file_put_contents ( $new_file , base64_decode ( str_replace ( $result [1], '' , $file )))) {
                 exit (dr_json(0, '目录权限不足或磁盘已满' ));

接收txt的参数.然后匹配了正则.最后取出内容和文件后缀部分。再直接存盘.文件名都是统一的0x0


仅仅是需要记住当前用户的id就可以搞定了

webshell http://xxx.com//uploadfile/member/uid/0x0.php

修复方案:

if (preg_match('/^(data:\s*image\/(png|jpg|jpeg);base64,)/', $file, $result)){

本地实验:

上传一个->图片木马->抓包->然后将图片后缀改为php->上传->访问  http://xxx.com//uploadfile/member/uid/0x0.php->菜刀链接->结束


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值