漏洞出现在/action/upload.php文件中

 <?php
/**
**
**By QINIAO
**/
!defined('QINIAO_ROOT') && exit('access deined!');
if($uid == 0)
{
echo "请登录后再上传照片! <a href ='javascript:history.go(-1);'>返回</a> ";
exit;
}
$uptypes = array(
'image/jpg',
'image/jpeg',
'image/png',
'image/pjpeg',
'image/gif',
'image/bmp',
'image/x-png'
);
if($_POST['Submit']=='上传')
{
$file = $_FILES["upfile"];
$fname = $_FILES["upfile"]["name"];
$fname_array = explode('.',$fname);
$fname = $fname_array[count($fname_array)-2]; //或者这样写$fname = $fname_array['0'];
$extend = $fname_array[count($fname_array)-1]; ////或者这样写$extend = $fname_array['1'];
$MAX_FILE_SIZE = 512000;
//文件当前位置创建picture文件夹,若要在上一层目录创建则为"../picture/"; $dest_folder = 'data/uploadfile/content/'.date('Ymd').'/'; if($extend!="")
{
if(!in_array($file["type"],$uptypes))
{
echo "只能上传图片文件! <a href ='javascript:history.go(-1);'>返回</a> ";
exit;
}
...

代码第12行,使用$uptypes定义了一个白名单,使用数组控制允许上传的文件类型,在第36的if语句行中进行判断,如果文件类型不在$uptypes数组中,则禁止上传,但是用于判断的$file是在第23行由$_FILES['upfile']赋值的,而$_FILES数组在客户端是可控的。

在文件后面处理上传的代码中:

 if(move_uploaded_file($_FILES["upfile"]["tmp_name"],$uploadfile))
{
$dest100=$dest_folder.$randval.'.'.$extend.'_view.jpg';
chmod($uploadfile, 0755);
$resizeimage = new resizeimage("$uploadfile", "100", "80", "1","$dest100");
header('Location: index.php?action=group&id='.$gid.'');
}
else
{
echo "图片分享失败! <a href ='javascript:history.go(-1);'>返回</a>";
}

会生成两个文件名,一个是上传了原始文件名,另一个是第3行代码,在原始文件名后面添加一个'_view.jpg'的后缀,估计是缩略图的文件名。

POC:

首先注册一个账号,然后发微博上传照片

上传一个测试文件test.php,其中只有一条代码phpinfo();然后需要抓包

上图是原始数据包的内容,当然不能直接上传,这样的话类型判断会过不去,上传不了的,需要修改红框标注的地方,改为$uptypes数组中定义的任何一个值即可

这是修改后的数据包

然后上传即可,在前台处,鼠标移动到图片的上方,可以看到图片路径,Php文件已经上传成功

直接在浏览器中访问该文件

时尚起义开源话题微博系统 v.0.4.5 上传漏洞的更多相关文章

  1. phpcms v9.6.0任意文件上传漏洞(CVE-2018-14399)

    phpcms v9.6.0任意文件上传漏洞(CVE-2018-14399) 一.漏洞描述 PHPCMS 9.6.0版本中的libs/classes/attachment.class.php文件存在漏洞 ...

  2. 【代码审计】JTBC(CMS)_PHP_v3.0 任意文件上传漏洞分析

      0x00 环境准备 JTBC(CMS)官网:http://www.jtbc.cn 网站源码版本:JTBC_CMS_PHP(3.0) 企业版 程序源码下载:http://download.jtbc. ...

  3. IIS6.0使用冒号上传漏洞利用

    利用条件: 1.iis版本为6.0  2.上传文件名不会重命名 利用: 上传一个jpg木马图片 名字为:cs.asp:.jpg 注意是: 默认windows是不允许文件字含:(冒号)的 所以需要抓包后 ...

  4. phpcms v9.6.0任意文件上传漏洞

    距离上一次写博客已经过去很长一段时间了,最近也一直在学习,只是并没有分享出来  越来越发现会的东西真的太少了,继续努力吧. 中午的时候遇到了一个站点,看到群里好多人都在搞,自己就也去试了试,拿下来后发 ...

  5. 【渗透测试】PHPCMS9.6.0 任意文件上传漏洞+修复方案

    这个漏洞是某司的一位前辈发出来的,这里只是复现一下而已. 原文地址:https://www.t00ls.net/thread-39226-1-1.html 首先我们本地搭建一个phpcms9.6.0的 ...

  6. PHPcms9.6.0任意文件上传漏洞直接getshell 利用教程

    对于PHPcms9.6.0 最新版漏洞,具体利用步骤如下: 首先我们在本地搭建一个php环境,我这里是appserv或者使用phpnow (官网下载地址:http://servkit.org/) (只 ...

  7. PHPCMS v9.6.0 任意文件上传漏洞分析

    引用源:http://paper.seebug.org/273/ 配置了php debug的环境,并且根据这篇文章把流程走了一遍,对phpstorm的debug熟练度+1(跟pycharm一样) 用户 ...

  8. 最新PHPcms9.6.0 任意文件上传漏洞

    在用户注册处抓包: 然后发送到repeater POC: siteid=&modelid=&username=z1aaaac121&password=aasaewee311as ...

  9. GLPI 0.85.5 上传漏洞分析

    在exp-db上面看到的漏洞,这是原文链接:https://www.exploit-db.com/exploits/38407/ 但是POC给的很简单,这是原来的描述: " The appl ...

随机推荐

  1. 吴裕雄--天生自然 pythonTensorFlow图形数据处理:TensorFlow图像处理函数

    import numpy as np import tensorflow as tf import matplotlib.pyplot as plt #读取图片 image_raw_data = tf ...

  2. Qt QGraphicsScene||GraphicsView函数刷新多次内存溢出问题

    需将QGraphicsScene *scene = new QGraphicsScene;放入上面声明头文件中声明: cpp文件中声明: 使用: 需要添加这个 scene->clear(); 这 ...

  3. windows 安装MySQL服务 zip解压程序

    1:配置 my.ini 文件 如下: [mysql] default-character-set=utf8[mysqld] port=3306basedir=D:\\Program Files\\da ...

  4. OA项目-需求分析

    ###############  需求分析   ############### """ 工作流 1,工单管理 2,执行记录 权限管理 1,菜单 2,角色, 用户管理 1, ...

  5. King of the Waves

    You are organising a king of the hill tournament, the Buenos Aires Paddleboarding Competition (BAPC) ...

  6. IPC之——信号量集

    信号量集用于对存在竞争的资源加锁 1.semId=semget(key,nsems,semflg) key:为信号量集名称,可以指定为0455等数字,也可以为PC_PRIVATE nsems:创建几个 ...

  7. Django获取当前时间和Linux系统时间不一致

    配置文件中修改:TIME_ZONE的值改为上海,USE_TZ的值改为False,重启项目即可

  8. java 的CAS

    CAS:什么是 CAS 机制?cas目的是实现原子操作解释一下:"原子操作(atomic operation)是不需要synchronized",这是多线程编程的老生常谈了.所谓原 ...

  9. 实战_2:eclipseRCP项目结构

    RCP项目目录结构如下: src: java源码目录 bin:class文件目录 JRE System Library: 系统类库依赖,主要是JDK,JRE相关的 Plugin-in Dependen ...

  10. [LC] 167. Two Sum II - Input array is sorted

    Given an array of integers that is already sorted in ascending order, find two numbers such that the ...