文件上传漏洞
若服务端脚本语言未对上传的文件进行严格的过滤,会导致用户上传木马、病毒或恶意脚本,从而获得服务端的控制权限。
medium
<?php
//判断是否非空
if( isset( $_POST[ 'Upload' ] ) ) {
// 确定上传文件目录
$target_path = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/";
$target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] );
// 获取文件信息
$uploaded_name = $_FILES[ 'uploaded' ][ 'name' ];//文件名
$uploaded_type = $_FILES[ 'uploaded' ][ 'type' ];//文件类型
$uploaded_size = $_FILES[ 'uploaded' ][ 'size' ];//文件大小
// 判断文件类型是否为jpeg、png,并且文件大小<100K
if( ( $uploaded_type == "image/jpeg" || $uploaded_type == "image/png" ) &&
( $uploaded_size < 100000 ) ) {
// 判断文件是否移动到指定位置
if( !move_uploaded_file( $_FILES[ 'uploaded' ][ 'tmp_name' ], $target_path ) ) {
// No
echo '<pre>Your image was not uploaded.</pre>';
}
else {
// Yes!
echo "<pre>{$target_path} succesfully uploaded!</pre>";
}
}
else {
// Invalid file
echo '<pre>Your image was not uploaded. We can only accept JPEG or PNG images.</pre>';
}
}
?>