wordpress /wp-content/plugins/wp-symposium/server/php/UploadHandler.php File Arbitrary Upload Vul

catalog

1. 漏洞描述
2. 漏洞触发条件
3. 漏洞影响范围
4. 漏洞代码分析
5. 防御方法
6. 攻防思考

1. 漏洞描述

Relevant Link:
2. 漏洞触发条件
3. 漏洞影响范围
4. 漏洞代码分析

/wp-content/plugins/wp-symposium/server/php/UploadHandler.php

function __construct($options = null, $initialize = true, $error_messages = null)
{
    if (isset($_POST[‘uploader_uid‘]) && isset($_POST[‘uploader_url‘]))
    {
        $upload_dir = $_POST[‘uploader_dir‘];
        $upload_url = $_POST[‘uploader_url‘];

        $this->options = array(
        ‘script_url‘ => $this->get_full_url().‘/‘,
        ‘upload_dir‘ => $upload_dir,
        ‘upload_url‘ => $upload_url,
        ‘user_dirs‘ => false,
        ‘mkdir_mode‘ => 0755,
        ‘param_name‘ => ‘files‘,
        // Set the following option to ‘POST‘, if your server does not support
        // DELETE requests. This is a parameter sent to the client:
        ‘delete_type‘ => ‘DELETE‘,
        ‘access_control_allow_origin‘ => ‘*‘,
        ‘access_control_allow_credentials‘ => false,
        ‘access_control_allow_methods‘ => array(
            ‘OPTIONS‘,
            ‘HEAD‘,
            ‘GET‘,
            ‘POST‘,
            ‘PUT‘,
            ‘PATCH‘,
            ‘DELETE‘
        ),
        ‘access_control_allow_headers‘ => array(
        ‘Content-Type‘,
        ‘Content-Range‘,
        ‘Content-Disposition‘
        ),
        // Enable to provide file downloads via GET requests to the PHP script:
        ‘download_via_php‘ => false,
        // Defines which files can be displayed inline when downloaded:
        ‘inline_file_types‘ => ‘/\.(mp4|zip|doc|docx|ppt|pptx|xls|xlsx|txt|pdf|gif|jpe?g|png)$/i‘,
        // 允许任意后缀文件上传,这是漏洞的根源
        ‘accept_file_types‘ => ‘/.+$/i‘,
        ..

5. 防御方法

/wp-content/plugins/wp-symposium/server/php/UploadHandler.php

..
// Enable to provide file downloads via GET requests to the PHP script:
‘download_via_php‘ => false,
// Defines which files can be displayed inline when downloaded:
‘inline_file_types‘ => ‘/\.(mp4|zip|doc|docx|ppt|pptx|xls|xlsx|txt|pdf|gif|jpe?g|png)$/i‘,
/**/
‘accept_file_types‘ => ‘/.(mp4|doc|docx|ppt|pptx|xls|xlsx|txt|pdf|gif|jpe?g|png)$/i‘,
/**/
..

6. 攻防思考

Copyright (c) 2015 LittleHann All rights reserved

时间: 2024-08-24 18:53:56

wordpress /wp-content/plugins/wp-symposium/server/php/UploadHandler.php File Arbitrary Upload Vul的相关文章

如何判断网站是不是wordpress做的及WP主题是什么?

经常听到朋友问:"如何辨别wp网站","怎么查看WP网站的主题是什么", "如何识别wordpress" ,"wordpress主题查询"今天就来讲一讲方法 原文链接:如何判断网站是不是wordpress做的及WP主题是什么? 1.查看源代码判断worpress网站和主题 wordpress有它自己特定的网站结构,像wp-admin, wp-content, wp-includes这三大文件夹是必备的,而且主题又存放在wp-c

wordpress无法安装这个包。: PCLZIP_ERR_MISSING_FILE (-4) : Missing archive file 'C:\WINDOWS\TEMP/wordpress-4.tmp'

朋友的wp博客好久没管理了,让ytkah帮忙打理一下,进到后台发现版本还是3.9的,那是比较早以前的版本了,早该升级了. 在升级wordpress时出现以下错误: 无法安装这个包: PCLZIP_ERR_MISSING_FILE (-4) : Missing archive file ‘C:\Windows\TEMP/wordpress-4.tmp’ 从错误本身来看,在升级wordpress或者安装插件的时候将临时文件存储在系统C:\Windows\TEMP,当没有这个文件夹或权限不够的时候就会

SAE+wordpress邮箱问题,WP MAIL STMP插件配置但无效解决的方法

我在SAE上面部署的WordPress是3.9版本号的,而非SAE应用商店里WordPress4sae是3.4的,虽然3.9版本号的确有非常多改进但在部署在SAE上面时须要做非常多改动,并且有些插件也须要改动,今天遇到一个网友问到之前遇到的一个邮箱插件问题,就想着把解决方法写下来吧,兴许假设记起来其它改进的地方在补上,今天仅仅说一下WP MAIL STMP这个插件的改动了. 相信非常多Wper都希望自己的站点能与网友即时交互.邮件及时通知评论,WP MAIL STMP这个插件非常强大足以满足绝大

最佳 WordPress 静态缓存插件 WP Super Cache 安装和使用(转)

WP Super Cache 是 WordPress 官方开发人员 Donncha开发,是当前最高效也是最灵活的 WordPress 静态缓存插件.它把整个网页直接生成 HTML 文件,这样 Web 服务器就不用解析 PHP 脚本,通过使用这个插件,能使得你的 WordPress 博客将显著的提速. WP Super Cache 基本介绍 WP Super Cache 是基于 Ricardo Galli Granada 的 WP-Cache 2.WP-Cache 2 可以缓存你的 WordPre

SAE+wordpress邮箱问题,WP MAIL STMP插件配置但无效解决办法

我在SAE上面部署的WordPress是3.9版本的,而非SAE应用商店里WordPress4sae是3.4的,尽管3.9版本的确有很多改进但在部署在SAE上面时需要做很多修改,而且有些插件也需要修改,今天遇到一个网友问到之前遇到的一个邮箱插件问题,就想着把解决方法写下来吧,后续如果记起来其他改进的地方在补上,今天只说一下WP MAIL STMP这个插件的修改了. 相信很多Wper都希望自己的网站能与网友即时交互,邮件及时通知评论,WP MAIL STMP这个插件很强大足以满足绝大部分用户.这个

WP开发笔记——WP APP添加页面跳转动画

微软的toolkit团队为我们为我们提供了这样一套组件,叫做TransitionServices服务. 简单说一下它具备的效果: turnstile(轴旋转效果): turnstile feather(羽毛式轴旋转效果): continuum(继承动画效果): slide(滑动效果): rotate(旋转效果). 这里我们实现一下Turnstile效果: 一.首先,我们要下载Silverlight for Windows Phone Toolkit (没有Windows phone Toolki

ClouderaManager中Event Server报No such file or directory

错误日志如下: 2015-06-24 06:13:10,176 ERROR com.cloudera.cmf.eventcatcher.server.EventCatcherService: Error starting EventServer java.io.FileNotFoundException: /var/lib/cloudera-scm-eventserver/v3/_yu2.cfs (No such file or directory) at java.io.RandomAcces

/usr/lib/uwsgi/plugins/python_plugin.so: cannot open shared object file: No such file or directory

Django uwsgi部署方式下产生这个Bug,后来发现把uwsgi配置ini文件里面的 #plugins = python 把上面这句配置语句注释掉,uwsgi就可以运行了,当然,是正常可用运行状态.

Gradle sync failed: /Applications/Android Studio.app/Contents/gradle/gradle-2.14.1/lib/plugins/gradle-diagnostics-2.14.1.jar (No such file or directory) Consult IDE log for more details (Help | Sh

上面出现的错误是,我从Android Studio 2.2 升级到2.3后,出现的问题, 找到方法: http://stackoverflow.com/questions/30526613/android-studio-gradle-sync-error-on-gradle-diagnostics-x-x-x-jar 看来每个Android Studio的版本都要一个最低版本的Gradle, Android Studio 2.2 distributionUrl=https\://services