时尚起义开源话题微博系统 v.0.4.5 上传漏洞
漏洞出现在/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 上传漏洞的更多相关文章
- phpcms v9.6.0任意文件上传漏洞(CVE-2018-14399)
phpcms v9.6.0任意文件上传漏洞(CVE-2018-14399) 一.漏洞描述 PHPCMS 9.6.0版本中的libs/classes/attachment.class.php文件存在漏洞 ...
- 【代码审计】JTBC(CMS)_PHP_v3.0 任意文件上传漏洞分析
0x00 环境准备 JTBC(CMS)官网:http://www.jtbc.cn 网站源码版本:JTBC_CMS_PHP(3.0) 企业版 程序源码下载:http://download.jtbc. ...
- IIS6.0使用冒号上传漏洞利用
利用条件: 1.iis版本为6.0 2.上传文件名不会重命名 利用: 上传一个jpg木马图片 名字为:cs.asp:.jpg 注意是: 默认windows是不允许文件字含:(冒号)的 所以需要抓包后 ...
- phpcms v9.6.0任意文件上传漏洞
距离上一次写博客已经过去很长一段时间了,最近也一直在学习,只是并没有分享出来 越来越发现会的东西真的太少了,继续努力吧. 中午的时候遇到了一个站点,看到群里好多人都在搞,自己就也去试了试,拿下来后发 ...
- 【渗透测试】PHPCMS9.6.0 任意文件上传漏洞+修复方案
这个漏洞是某司的一位前辈发出来的,这里只是复现一下而已. 原文地址:https://www.t00ls.net/thread-39226-1-1.html 首先我们本地搭建一个phpcms9.6.0的 ...
- PHPcms9.6.0任意文件上传漏洞直接getshell 利用教程
对于PHPcms9.6.0 最新版漏洞,具体利用步骤如下: 首先我们在本地搭建一个php环境,我这里是appserv或者使用phpnow (官网下载地址:http://servkit.org/) (只 ...
- PHPCMS v9.6.0 任意文件上传漏洞分析
引用源:http://paper.seebug.org/273/ 配置了php debug的环境,并且根据这篇文章把流程走了一遍,对phpstorm的debug熟练度+1(跟pycharm一样) 用户 ...
- 最新PHPcms9.6.0 任意文件上传漏洞
在用户注册处抓包: 然后发送到repeater POC: siteid=&modelid=&username=z1aaaac121&password=aasaewee311as ...
- GLPI 0.85.5 上传漏洞分析
在exp-db上面看到的漏洞,这是原文链接:https://www.exploit-db.com/exploits/38407/ 但是POC给的很简单,这是原来的描述: " The appl ...
随机推荐
- C# 扩张方法的语法
using System; namespace ConsoleApp { class Program { static void Main(string[] args) { string str = ...
- python与mysql部分函数和控制流语法对比
条件语句 python语法 a=int(input("输入一个数[0,100]成绩:")) if 100>=a>=90: print("优") el ...
- SaltSack 中Job管理
一.简介 Jid: job id的格式为%Y%m%d%H%M%S%f master在下发指令消息时,会附带上产生的jid,minion在接收到指令开始执行时,会在本地的cachedir(默认是/var ...
- Angular(二)
Angular开发者指南(二)概念概述 template(模板):带有附加标记的模板HTMLdirectives(指令):使用自定义属性和元素扩展HTMLmodel(模型):用户在视图中显示的数据 ...
- iOS 自定义UITabBar
推荐一篇非常好的集成各种UITabBar的三方库 <点击这里直取demo> 另外一篇根据runtime定制了一款可以出轨的UITarBar <Runtime实战之定制TabBarIt ...
- 基础篇四:Ngnix安装
然后直接 yum install nginx 安装nginx
- 如何查看Linux系统下程序运行时使用的库?
Linux系统下程序运行会实时的用到相关动态库,某些场景下,比如需要裁剪不必要的动态库时,就需要查看哪些动态库被用到了. 以运行VLC为例. VLC开始运行后,首先查看vlc的PID,比如这次查到的V ...
- php 二维码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 18)添加引号转移函数,防止SQL注入
目录机构: 然后我的改动代码: MysqlDB.class.php <?php /** * Created by PhpStorm. * User: Interact * Date: 2017/ ...
- volatile与Synchronized
摘自: https://blog.csdn.net/zxh476771756/article/details/78685581 一.JVM内存模型: JVM将内存组织为主内存和工作内存两个部分. 主内 ...