Recientemente me uní a un proyecto de seguridad y recibí una tarea para demostrar el riesgo relacionado con un usuario final que carga una imagen que contiene un código JavaScript incrustado (malicioso).
Utilicé EXIFeditor para inyectar el código JavaScript en la etiqueta imgdescription
de una imagen, luego subí la imagen a ASP.NET servidor web utilizando el siguiente código C #:
protected void Upload_File(object sender, EventArgs e)
{
var postedFile = Upload_fu.PostedFile;
string fileName=new FileInfo(postedFile.FileName).Name;
string path = Server.MapPath("~/images/" + fileName);
postedFile.SaveAs(path);
Success_msg.Text = "successfully saved";
img_sr.ImageUrl = "~/images/" + fileName;
}
Nota: img_sr
es un elemento <asp:Image/>
, y Upload_fu
es un elemento <asp:UploadFile/>
.
El código JavaScript que he incrustado en la imagen es un simple alert("Hello world")
. Sin embargo, el código no se ejecuta (lo intenté con FireFox 21 e Internet Explorer 9).
¿Qué estoy haciendo mal?