arreglar
- Usar ninguna o solo validación MIME
Resumen de vulnerabilidad
Según el problema de autenticación MIME, la información se puede interceptar en el medio y luego la información MIME se puede modificar para romper
Proceso de análisis
Primero probé el método 1 en el informe de resolución de problemas de upload-labs - 01 , y el resultado fue exitoso.
Lo pensé, y las lagunas deben ser diferentes, por lo que js no debe juzgar esta pregunta.
Más tarde, traté de modificar varios nombres de sufijos en burp y descubrí que todos pasaron, por lo que no debe juzgarse en función del nombre de sufijo, por lo que puede tener algo que ver con la información de tipo MIME.
Podemos experimentar con nombres de archivos y tipos de archivos.
La carga fue exitosa. ψ(._. )>
Observe el código fuente y descubra que su verificación de tipo se basa realmente en type .
$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
if (file_exists(UPLOAD_PATH)) {
if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')) {
$temp_file = $_FILES['upload_file']['tmp_name'];
$img_path = UPLOAD_PATH . '/' . $_FILES['upload_file']['name']
if (move_uploaded_file($temp_file, $img_path)) {
$is_upload = true;
} else {
$msg = '上传出错!';
}
} else {
$msg = '文件类型不正确,请重新上传!';
}
} else {
$msg = UPLOAD_PATH.'文件夹不存在,请手工创建!';
}
}