Внимание: вирус в 404

12
Dreammaker
На сайте с 20.04.2006
Offline
569
#11
javadf:
На том этапе, что при запросе несуществующего favicon.ico браузер среагирует на заголовок 404, браузер в данном случае не будет загружать соддержимое 404 страницы.

Провёл небольшой эксперимент, не до конца полный ибо немного надоело играться с разными вариантами. :)

Если в .htaccess

есть директива

ErrorDocument 404 /404.php

то "фавикона" с Javascript'ом отдаёт 206 partial content. Также простой скрипт в виде


<? Header("Content-type: image/png");?>
<? echo file_get_contents('favicon2.ico'); ?>

(это тнаш 404.php)

Ничего не показывает на месте фавиконы. Если же сделать так:


<? header("HTTP/1.0 200 OK");?>
<? Header("Content-type: image/png");?>
<? echo file_get_contents('favicon2.ico'); ?>

то ФФ показывает.

Но при этом выполнения кода в виде


<?php header("HTTP/1.0 200 Ok") ?>
<html>
<body>
<script>
function setCookie (name, value, expires, path, domain, secure) {
document.cookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
setCookie("foo", "bar", "Mon, 01-Jan-2010 00:00:00 GMT", "/");
</script>
</body>
</html>

не получилось выполнить JS-код.

Но если мы пытаемся доступится до фавиконы по прямому адресу, введя его в браузере, то джаваскрипт выполняется, даже если не отдавать 200 заголовок. Также этот код выполняется в случае набора любой несуществующей страницы.

Dreammaker добавил 01.04.2009 в 13:01

dkameleon:
яваскрипт в фавиконке вряд ли выполняется.

Так что да, так оно и есть. (плюсомёт не сработал :) )

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

T.R.O.N
На сайте с 18.05.2004
Offline
314
#12
Dreammaker:
Впрочем, на том сайте в коде этого не было, а касперский ругнулся именно на фавикону

как ни крути, касперский, и любой другой, проверяют ТОЛЬКО файлы загруженные на локальный комп. Если вместо ico придет зараженная страница 404 - никто, кроме антивиря, ее не увидит и ни на что она не повлияет. даже IE это в заглушки убрал. Если ожидается картинка, то любой иной контент, отличный от ожидаемого - не обрабатывается.

Вопрос, что такого страшного висано в страницу 404? (касперу никогда веры небыло и нет)

PS Меня здесь настораживает только факт кражи паролей ftp.

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
CN
На сайте с 29.09.2007
Offline
155
#13
Dreammaker:
Провёл небольшой эксперимент, не до конца полный ибо немного надоело играться с разными вариантами. :)

Если в .htaccess
есть директива
ErrorDocument 404 /404.php

то "фавикона" с Javascript'ом отдаёт 206 partial content. Также простой скрипт в виде


<? Header("Content-type: image/png");?>
<? echo file_get_contents('favicon2.ico'); ?>


(это тнаш 404.php)

Ничего не показывает на месте фавиконы. Если же сделать так:


<? header("HTTP/1.0 200 OK");?>
<? Header("Content-type: image/png");?>
<? echo file_get_contents('favicon2.ico'); ?>


то ФФ показывает.

Но при этом выполнения кода в виде


<?php header("HTTP/1.0 200 Ok") ?>
<html>
<body>
<script>
function setCookie (name, value, expires, path, domain, secure) {
document.cookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
setCookie("foo", "bar", "Mon, 01-Jan-2010 00:00:00 GMT", "/");
</script>
</body>
</html>


не получилось выполнить JS-код.

Но если мы пытаемся доступится до фавиконы по прямому адресу, введя его в браузере, то джаваскрипт выполняется, даже если не отдавать 200 заголовок. Также этот код выполняется в случае набора любой несуществующей страницы.

Dreammaker добавил 01.04.2009 в 13:01


Так что да, так оно и есть. (плюсомёт не сработал :) )

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

Собственно что я и говорил. 404 отдается только по прямому вводу URL в браузер.

Dreammaker
На сайте с 20.04.2006
Offline
569
#14
T.R.O.N:
Вопрос, что такого страшного висано в страницу 404?

стандартное eval unescape и т.д. Я не расшифровывал, но не думаю, что содержимое будет сюрпризом. :)

Dreammaker добавил 01.04.2009 в 13:26

conturov.net:
404 отдается только по прямому вводу URL в браузер.

Но если отдавать в этой странице, которая показывается по 404 ошибке 200 заголовок, то содержимое грузится, только не выполняется в нём js.

Dreammaker
На сайте с 20.04.2006
Offline
569
#15
Marlenus09:
echo в браузер и увидите

alert ;) мне и это было лень.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий