Login dark
title: Veno File Manager 任意文件上传
author: 零贰
date: 2020-08-09 13:04:17
category: [编程代码]
tags: [VC6,代码,学习]

Veno File Manager 任意文件上传

@TOC

_

正文

漏洞代码
/vfm-admin/chunk.php 第134行
关键代码:

$chunk->createFileFromChunks(

$_GET['loc'],
$temp_dir,
$resumableFilename,
$_POST['resumableChunkSize'],
$_POST['resumableTotalSize'],
$_GET['logloc']

);
PHPCopy
跟进createFileFromChunks函数
/vfm-admin/class.php 第4383行
关键代码:

public function createFileFromChunks($location, $temp_dir, $fileName, $chunkSize, $totalSize, $logloc)
{

global $chunk;
$upload_dir = str_replace('\\', '', $location);
$extension = File::getFileExtension($fileName);
// count all the parts of this file
$total_files = 0;
$finalfile = FileManager::safeExtension($fileName, $extension);

//忽略
PHPCopy
跟进safeExtension函数
/vfm-admin/class.php 第1707行
完整代码:

public static function safeExtension($name, $extension)
{

$evil = array(
    'php','php3','php4','php5','htm','html','phtm','phtml',
    'shtm','shtml','asp','pl','py','jsp','sh','cgi','htaccess',
    'htpasswd','386','bat','cmd','pl','ddl','bin'
    );  //黑名单
if (in_array($extension, $evil)) {
    $name = $name.'.txt'; //如果后缀名出现在黑名单中,在原文件名后加.txt后缀
}
return $name;

}
PHPCopy
http://blog.csdn.net/u011650048/article/details/51454014

利用方法
resumableFilename 后加空格
burp.png

_

  • 原文链接
  • 注:知识搬运,供学习交流使用,侵联删!

_