|
At In-Portal all user uploaded files are stored in "/system/" folder, which accessible from the Web. This way an attacker can probe that folder to see which of files he/she is interested in is present to perform his attack.
There are several solutions to this:
The complete randomization is of course more secure solution, but in case, when uploaded files are not images (images can be found later by their thumbnail) this can be become a nightmare for users. Therefore partial randomization seems like a viable solution.
\kUploadHelper::randomizeFilename($filename)
" method, that will: - 0.5hSecurityGenerator::generateBytes(8)
" method call{file_name}_{random_string}.{file_extension}
"\kUploadHelper::getUploadedFilename
" method wrap response with "\kUploadHelper::randomizeFilename
" method call - 0.3h\kUploadFormatter::_processRegularUploader
" method, when file was uploaded (the error is UPLOAD_ERR_OK
) but before any validation happens wrap "$value['name']
" with "\kUploadHelper::randomizeFilename
" method call - 0.2hQuote: 1h*1.4=1.5h