建站之星php 漏洞,建站之星任意文件上传漏洞

news/2024/5/12 1:13:20/文章来源:https://blog.csdn.net/weixin_34229578/article/details/116350514

#1 漏洞产生

/module/mod_media.php

flash_picker() 和 image_picker() 两个函数

image_picker() 函数

$typeArr = array('image/jpeg','image/pjpeg');

$flash_typeArr = array('image/jpeg','image/pjpeg');

$file_info =& ParamHolder::get('localfile', array(), PS_FILES);

$file_info['name'] = Toolkit::changeFileNameChineseToPinyin($file_info['name']);

if ( sizeof($file_info) > 0 && isset($file_info['name']) )

{

// 文件大小

if ( ($file_info['size'] == 0) || ($file_info['size'] > $maxsize) ) {

$err = __('Upload size limit').':2M';

// 文件类型

} elseif ( !in_array( $file_info['type'], $typeArr ) ) {

$err = __('Supported file format').':jpg';

}else {

$dest = ROOT.'/upload/image/';

//$file_info['name'] = Toolkit::randomStr(8).strrchr($file_info["name"],".");

if (preg_match("/^WIN/i", PHP_OS) && preg_match("/[\x80-\xff]./", $file_info['name'])) {

$file_info['name'] = iconv("UTF-8", "GBK//IGNORE", $file_info['name']);

}

if ( move_uploaded_file( $file_info['tmp_name'], $dest.$file_info['name'] ) ) {

ParamParser::fire_virus($dest.$file_info['name']);

$wincls = 'OK';

// 图片水印

if( WATERMARK_STATUS ) $this->img_restruck($file_info['name']);

$this->assign('fname', $file_info['name']);

} else { $err = __('Uploading file failed!'); }

}

}

flash_picker()函数

$typeArr = array('application/x-shockwave-flash','application/x-download');

$file_info =& ParamHolder::get('localfile', array(), PS_FILES);

if ( sizeof($file_info) > 0 && isset($file_info['name']) )

{

// 文件大小

if ( ($file_info['size'] == 0) || ($file_info['size'] > $maxsize) ) {

$err = '上传大小限制:2M';

// 文件类型

} elseif ( !in_array( $file_info['type'], $typeArr ) ) {

//$err = '支持的文件类型:swf|flv';

$err = '支持的文件类型:swf';

} else {

$dest = ROOT.'/upload/flash/';

$file_info['name'] = Toolkit::randomStr(8).strrchr($file_info["name"],".");

if ( move_uploaded_file( $file_info['tmp_name'], $dest.$file_info['name'] ) ) {

ParamParser::fire_virus($dest.$file_info['name']);

$wincls = 'OK';

$this->assign('fname', $file_info['name']);

} else { $err = '上传失败'; }

}

}

看见了吧 两个函数都只检查了Content-Type参数

你们难道不知道Content-Type参数可以被完全控制吗?

鉴于这两个文件上传比较简单 就不多说了...

#2 漏洞利用

将如下代码保存为upload.htm

Flash:

访问upload.php并上传文件,上传的时候用Burpsuite 抓包 并修改

6c55116ac6c5522fb439a9dc2bfd9532.png

点击Forward即可在 /upload/flash 下面生成php文件

98f8fe80d35d18fab78e1b9d36421522.png

修复方案:

强烈建议采用统一的上传代码;

对文件进行安全检查时,千万别只检查文件上传的Content-Type参数,这个参数只要抓包就可以对其进行任意修改。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_826813.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站需要显示在线访问人数

Insus.NET开发这样多网站,客户一直没有这个要求。不过,现在有客户有这样的要求了。在线用户访问人数,也就是说,要为网站写一个计数器,计数器的初始值为0,网站一开始运行时(Application_Start),就…

个人网站制作模板

前言 小伙伴们,大家好,今天和大家分享主题是个人网页设计作品,此作品包含css文件、fonts文件夹、images文件夹、js文件夹和index.html文件,支持PC端和手机端浏览,使用chrome浏览器,浏览效果更佳。 主题 …

清新漂亮简约好看的个人博客网站模板

该从哪里开始呢?好久没来,有点生疏,有点茫然,那就按常规套路来吧,首先对你们的驻足说声3q,本次分享的是一款个人博客设计,主题为《周末s博客》,本来代码算是早就写好,但因…

个人网站模板

/ 01 / 主题 《周末の飞扬》 / 02 / 图摘

我的家乡网站设计

/ 01 / 主题 《我的家乡》 / 02 / 图摘

简单的个人主页网站制作

/ 01 / 主题 《周末のWIN》 / 02 / 图摘

个人博客网站模板

/ 01 / 主题 《周末の博客》 / 02 / 图摘 / 03 /

个人网站首页设计模板

/ 01 / 主题 《致闺蜜》 / 02 / 开场白 闺蜜我们要做一个有深度的姑娘,有脾气的女流氓,有教养的淑女 / 03 / 图摘 / 04 /

个人网站制作源代码

/ 01 / 前话 《周末听雨》包含动态雨滴效果,采用Dreamweaver软件制作,代码结构简单,DIVCSS布局,目录结构为index.html页面、js、css和images文件夹。 / 02 / 图摘 / 03 /

网站设计模板

/ 01 / 前话 个人网站模板《周末の浅深》,html5css3.文字比图片更能打动人,采用DIV倾斜设计,更加能脱颖而出。 / 02 / 图摘 / 03 /

个人博客网站的设计与实现

/ 前话 / 纯手工敲代码,代码结构简单,divcss布局html静态个人博客首页网页设计,dreamwaver和hb都可以编辑,文件结构包含了css、fonts、images、js和html,运用html5技术,包括nav标签、header标签和footer标签…

html网页设计模板网站

/ 主题 / 《周末青葱》 / 有感 / Green Years,青葱岁月,似水流年,时常会念想曾经的时候,再也回不去的过往,平凡的行程中,我们匆匆相遇,又要匆匆告别...... 人生需要给自己一次机会,…

淘宝网和铁道部订票网站采用什么技术架构来实现网站高负载的呢

12306火车票购票系统,逢假日必瘫痪,引发了强烈反响。在国庆前后,搜狐IT“问诊12306”做了系列报道。当时,铁道系统的答复是,购票人数太多,数据量过大。但是,在前不久淘宝双11大促活动中&#xf…

教你用Vue插槽实现一个简单的电影网站导航栏

用插槽实现一个导航栏 每次访问电影网站&#xff0c;都会看到一个导航栏&#xff0c;今天就仿照一个导航栏结构。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible&quo…

通过FTP连接Azure上的网站

下载发布文件 使用记事本&#xff08;或其他文本工具&#xff09;打开 找到ftp连接地址以及用户名、密码 使用ftp工具进行连接 输入相应参数&#xff0c;连接即可

小型网站渗透常规思路之抛砖引玉

为什么80%的码农都做不了架构师&#xff1f;>>> 首先&#xff0c;我们知道 。当我们得到一个目标后&#xff0c;当然目标只是针对小型网站的一个思路&#xff0c;大型网站又是另外一个思路了。 信息收集 首先要做的就是信息收集&#xff0c;正所谓磨刀不误砍柴功…

ASP.net 添加Service Reference,发布网站要注意的问题

1&#xff0c;开启WCF服务端后&#xff0c;如果ASP是远程添加Service Reference要注意IP地址。 在WCF服务端是否有IP地址无法识别&#xff1a; 以下1、localhost在远程时无法识别添加 2、直接赋值“192.168.1.110”则在WCF程序主机更换时需手动改代码 应改为自动识别本机的IP…

ASP.net 网站发布步骤及注意事项

1、用VS2013打开解决方案。 2、选中解决方案&#xff0c;点击鼠标“右键”—>从弹出对话框中&#xff0c;选择“清理解决方案”。 3、待第2步“清理解决方案”结束后&#xff0c;选中“解决方案”—>点击鼠标“右键”—>在弹出对话框中&#xff0c;选择“重新生成解决…

ASP.net 发布建立网站的步骤。及打开网页500.19、500.21解决方法。

1.控制面板-----> 程序和功能----->打开或关闭Windows功能 Internet信息服务下FTP服务器全选&#xff0c;Web管理工具全选&#xff0c;万维网服务如下图&#xff1a; 点击确定。 2.控制面板---->管理工具----->Internet信息服务&#xff08;IIS&#xff09;管理器…

http网站升级为https网站,证书、http-flv视频显示处理

一、使用OpenSSL生成自签名证书 升级https网站需要自签名证书&#xff0c;证书在视频服务器Nginx中也需要&#xff0c;使用OpenSSL生成。 1.下载安装OpenSSL 2.以管理员身份运行cmd进入OpenSSL的安装目录查看安装版本 3.生成自签名证书。 生成私钥&#xff1a;openssl genr…