是否可以将键盘记录器嵌入到 jpg 图像中?

Obs*_*rv_ -1 jpeg keylogger keystrokes put

我很想知道是否可以制作一个包含键盘记录器的 jpg 文件,该文件将在图像打开时执行。

我坚信这种事情是不可能的,但是我听到越来越多的谣言。有什么想法吗?

ken*_*orb 7

当您用来打开 JPG 文件(或任何其他文件)的应用程序中存在安全漏洞时是可能的,除非它是伪造的 JPEG 图像。

所以有几个场景:

  • 运行假JPEG

    无经验的用户下载的文件,并认为它是图像(因为图标看起来像一个形象和操作系统不告诉你扩展名),但它可能是任何可执行文件(.exe.vbs.msi.cmd.bat,等)。因此,如果您的操作系统在您运行虚假图像文件时没有警告您,则该图像可能会在安装了键盘记录器的情况下显示。因此,在打开可疑文件之前,请务必检查您的扩展程序。

  • 打开JPEG

    任何媒体文件(和其他文件)都可能携带一些旨在欺骗特定应用程序的注入代码。他们在解析某些数据时可能存在一些缺陷(例如在 EXIF 中)。因此,如果应用程序有问题,注入的数据可能会诱使应用程序运行一些任意代码。

    例如:Exploit:W32/JPG Vulnerability、Exploit:W32/JPG Vulnerability、MS04-028exploit

  • 从服务器加载 JPEG

    您可以将一些编程代码注入 JPEG,因此一旦它被 Web 应用程序解析,它就可以执行给定语言中的任何代码。例如,JPEG 文件可能包含特殊标签 ( <?php, ?>),当被来自网络托管公司的错误编码应用程序 ( file_get_contents(), fopen(), readfile())解析时,它可能会删除您的 www 帐户。

    示例 JPEG: php-logo-virus.jpg

    将此代码嵌入到文件中:

    ÿØÿà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>

    所以一旦你打开上面的图片,view-source:在地址之前添加,你就会看到注入的 PHP 脚本。请注意,上图只是示例,它不会执行任何操作。

    来源:代码注入——一种携带在 JPEG 图像中的简单 PHP 病毒

  • 加载不是 JPEG 文件的 JPEG 文件

    当您看到诸如: 之类的链接时http://www.example.com/foo.jpeg,您会认为它是一个图像,但实际上并非如此。这完全取决于它的 MIME 类型,通过加载它,您实际上可以加载脚本(例如 Javascript),并且在易受攻击的/旧浏览器上,可以安装键盘记录器。另一方面,您的浏览器不一定很旧才能实现这一目标。

    例如,您正在访问的页面是假银行网站,或者可能是真实银行(在某些论坛上,有人通过XSS上传了假 JPEG )。所以要实现 XSS Keylogger,你只需要document.onkeypress+ AJAX 调用。请参阅:XSS 键盘记录器

    另请检查:XSS 过滤器规避备忘单

  • 加载 JPEG,即 SVG

    有时,当您加载媒体文件并且网络浏览器将其识别为不同的图像时,它会退回到已识别的格式。你可以在 SVG 文件中做什么,你可以在其中包含 html 和 JavaScript(如果你的网络浏览器允许),请参阅:在 SVG 中创建一个表(和另一个)。

  • 很好地覆盖和采购。当然是对浏览器进行沙盒化的一个很好的论据。 (2认同)