A vulnerabilidade de upload de arquivos ocorre quando uma aplicação permite que usuários façam upload de arquivos sem a devida verificação de segurança. Hackers podem explorar essa vulnerabilidade para fazer upload de arquivos maliciosos, como scripts que podem ser executados no servidor, comprometendo a segurança da aplicação.
Os hackers normalmente seguem estes passos para explorar uma vulnerabilidade de upload de arquivos:
<?php
if(isset($_FILES['file'])) {
$file = $_FILES['file'];
move_uploaded_file($file['tmp_name'], 'uploads/' . $file['name']);
echo "Arquivo enviado com sucesso!";
}
?>
O código acima permite o upload de qualquer arquivo sem verificar seu tipo, permitindo que arquivos maliciosos sejam enviados.
<?php
if(isset($_FILES['file'])) {
$file = $_FILES['file'];
$allowedTypes = ['image/jpeg', 'image/png', 'application/pdf'];
if(in_array($file['type'], $allowedTypes)) {
move_uploaded_file($file['tmp_name'], 'uploads/' . basename($file['name']));
echo "Arquivo enviado com sucesso!";
} else {
echo "Tipo de arquivo não permitido!";
}
}
?>
O código acima verifica o tipo de arquivo antes de fazer o upload, permitindo apenas tipos específicos.