É possível quando há uma falha de segurança no aplicativo que você está usando para abrir o arquivo JPG (ou qualquer outro arquivo), a menos que seja uma imagem JPEG falsa.
Portanto, há poucos cenários:
-
executando JPEG falso
Usuário não experiente baixou o arquivo e acha que é a imagem (porque o ícone se parece com uma imagem e o SO não mostra a extensão), mas pode ser qualquer arquivo executável (
.exe
,.vbs
,.msi
,.cmd
,.bat
, etc.). Portanto, se o seu sistema operacional não avisar quando você executar um arquivo de imagem falso, a imagem poderá ser mostrada com o keylogger instalado. Por isso, verifique sempre sua extensão antes de abrir arquivos suspeitos. -
abrindo o JPEG
Qualquer arquivo de mídia (e outros) pode conter algum código injetado projetado para enganar aplicativos específicos. Eles poderiam ter algumas falhas na análise de alguns dados (por exemplo, em EXIF). Então, se a aplicação é buggy, os dados injetados podem enganar o aplicativo para executar algum código arbitrário.
Por exemplo: Exploit: Vulnerabilidade no W32 / JPG, Exploit: vulnerabilidade do W32 / JPG, MS04- 028 explorar
-
carregando JPEG do servidor
Você poderia injetar algum código de programação em JPEG, então, uma vez analisado pelo aplicativo da Web, ele poderá executar qualquer código no idioma especificado. Por exemplo, o arquivo JPEG pode incluir tags especiais (
<?php
,?>
) e, quando analisado por aplicativo mal codificado da empresa de hospedagem (file_get_contents()
,fopen()
,readfile()
), pode apagar sua conta www. / p>Exemplo JPEG:
php-logo-virus.jpg
que tem esse código incorporado ao arquivo:
ÿØÿàJFIF''ÿáfExifMM* éV@HQQQ<style>body{font-size: 0;} h1{font-size: 12px !important;}</style><h1><?php echo "<hr />THIS IMAGE COULD ERASE YOUR WWW ACCOUNT, it shows you the PHP info instead...<hr />"; phpinfo(); __halt_compiler(); ?></h1>
Então, quando você abrir a imagem acima, adicione
view-source:
antes do endereço, assim você verá o script PHP injetado. Note que a imagem acima é apenas o exemplo e não fará nada.Fonte: Code injection - um simples vírus PHP transportado em uma imagem JPEG
-
carregando o arquivo JPEG que não é um arquivo JPEG
Quando você vê o link como:
http://www.example.com/foo.jpeg
, você acha que é uma imagem, mas não precisa. Tudo depende do seu tipo MIME e, carregando-o, você pode carregar o script (como o Javascript) e, no navegador vulnerável / antigo, instalar um keylogger. Por outro lado, seu navegador não precisa ser antigo para conseguir isso.Por exemplo, você está visitando a página que é o site do banco falso ou pode ser um banco real (com algum fórum em que alguém fez o upload de um JPEG falso via XSS ). Portanto, para implementar o XSS Keylogger, você só precisa de
document.onkeypress
+ chamadas AJAX. Veja: XSS KeyloggerVerifique também: Folha de evasão do filtro XSS
-
carregando JPEG que é SVG
Às vezes, quando você carrega o arquivo de mídia e o navegador da Web, reconhece-o como uma imagem diferente e recua para o formato reconhecido. E o que você pode fazer em arquivos SVG, você pode incluir html e JavaScript nele (se o seu navegador permitir isso), consulte: Create uma tabela em SVG (e outra ).