el joomla no tiene protección para evitar que le suban una shell? bueno... si le pudiste sacar el valor a la tabla, que se puede esperar? -.-
-----modif-----
sorry... pensé que era de joomla... igual la pagina es demasiado débil si tiene esos huecos, son especialmente simples de cerrar
el shell, con confirmar el mime con el contenido basta (ej: si es imagen debe empezar de maneras especificas, y tener ciertas cosas, etc...)
y el mysql con tirar un replace, strip o scape a los simbolos basta (sin contar que el acceso debe tener por lo menos una capa de seguridad hacia la db)
es decir nunca hacer
select * from usuarios where user=$user and pass=$pass
sino (asumiendo que tienes la contraseñas en hash como es debido)
$pass= md5($pass)
$resultado = .... select * from usuarios where pass=$pass
if($resultado['user']== $user) abrir_sesion()
para los id algo similar...
y listo... ni ataques de inyeccion, ni de shell...