漏洞出现在/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. Python 生成requirements文件以及使用requirements.txt部署项目

    生成requirements.txt 当你的项目不再你的本地时,为了方便在新环境中配置好环境变量,你的项目需要一个记录其所有依赖包以及它们版本号的文件夹requirements.txt 文件. pip ...

  2. 借助Nginx搭建反向代理服务器

    一.反向代理:Web服务器的"经纪人" 1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网 ...

  3. 对《The future of ReactiveCocoa》的一些思考

    前言 我以为 第一次接触 swift 语言时,看到函数的表示形式如下: func fun(num: Int) -> Int { return num + 1 } let f = fun(1) 和 ...

  4. linux查看显卡

    查看 nvidia 显卡 $ lspci | grep -i nvidia 02:00.0 3D controller: nVidia Corporation Device 1023 (rev a1) ...

  5. regex(python)

    正则表达式 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/7/26 16:39 # @Author : jackendoff ...

  6. python,openpyxl,读写excel文件

    import openpyxl as oxl from openpyxl.utils import get_column_letter, column_index_from_string import ...

  7. Linux_拷贝,剪切,删除和创建文件

    cp 你要拷贝的文件 + 目录/带路径的文件名(在拷贝的同时,让这个文件重新命名) cp /tep/dir01  ~  代表将dir01拷贝到当前用户的家目录中 cp /tep/dir02  ~/di ...

  8. kubernetes flannel 网卡绑定错误,故障排查

    kubernetes 新加了个node,状态Ready,但调度过去的任务,都执行异常 查看异常节点日志 `Error adding net work: open run/flannel/subnet. ...

  9. Mock测试,何去何从

    2016-10-24   出处:Qtest之道  作/译者:闫耀珍   上面的情景是不是似曾相识呢?现今的业务系统已经很少是孤立存在的了,尤其对于一个大公司而言,各个部门之间的配合非常密切,我们或多或 ...

  10. Cocos2dx-JS学习01

    123456 <body><script src="res/loading.js"></script><canvas id="g ...