Некие ребята нашли в Facebook интересную особенность. Когда пользователи добавляют на свою стену ссылку на фото, Facebook на фоне подтягивает это фото и добавляет уменьшенную копию рядом с постом. Но при этом они а) используют определенный User-Agent, и б) определенный домен, с которого идет запрос. Если использовать эту информацию, то можно выдать этому роботу JPEG, а всем остальным выдавать Location: www.domain.com/my_awful_script.php с любым функционалом. Google+, кстати, делает то же самое.
Вот тут все описано с примером скрипта:
www.blackhatacademy.org/security101/index.php?title=Facebook#Content_Forgery
Товарищи предлагают сделать
AddType x-httpd-php .jpg
+ AddHandler. Можно также включить mod_rewrite:
RewriteEngine On
RewriteRule .jpg$ serve.php
И имеем профит. На момент написания этого поста проблема еще не решена. Странно, что этим еще никто не воспользовался всерьез (а может уже и воспользовался).
Источник: slashdot.org.
UPD: Поправил ошибочный вывод про AddType.
Так же попросили рассказать, как этого можно избежать. Во-первых, это дело отлавливают по User-Agent — ну тут робот может притвориться какой-нибудь Оперой. А вот как обойти тот факт, что все такие запросы идут с определенных IP — я не знаю. Любой список IP будет конечным, кроме использования чего-то вроде TOR, но в масштабах проекта с посещаемостью, сравнимой с таковой у Facebook, такой сервис использовать вряд ли реально.
И еще — ответ на то, чем это отличается от просто миниатюры картинки со ссылкой, ведущей совсем не туда. В основном отличается тем, что народ знает про тот факт, что Facebook автоматически подтягивает миниатюры, и вероятность того, что кто-то впохыхах кликнет, куда выше. Вторая опасность для юзера в том, что в этот момент он гарантированно залогинен в FB, и таким образом оказывается в опасности кражи сессии, или тот же CSRF итп.
Вот тут все описано с примером скрипта:
www.blackhatacademy.org/security101/index.php?title=Facebook#Content_Forgery
Товарищи предлагают сделать
AddType x-httpd-php .jpg
+ AddHandler. Можно также включить mod_rewrite:
RewriteEngine On
RewriteRule .jpg$ serve.php
И имеем профит. На момент написания этого поста проблема еще не решена. Странно, что этим еще никто не воспользовался всерьез (а может уже и воспользовался).
Источник: slashdot.org.
UPD: Поправил ошибочный вывод про AddType.
Так же попросили рассказать, как этого можно избежать. Во-первых, это дело отлавливают по User-Agent — ну тут робот может притвориться какой-нибудь Оперой. А вот как обойти тот факт, что все такие запросы идут с определенных IP — я не знаю. Любой список IP будет конечным, кроме использования чего-то вроде TOR, но в масштабах проекта с посещаемостью, сравнимой с таковой у Facebook, такой сервис использовать вряд ли реально.
И еще — ответ на то, чем это отличается от просто миниатюры картинки со ссылкой, ведущей совсем не туда. В основном отличается тем, что народ знает про тот факт, что Facebook автоматически подтягивает миниатюры, и вероятность того, что кто-то впохыхах кликнет, куда выше. Вторая опасность для юзера в том, что в этот момент он гарантированно залогинен в FB, и таким образом оказывается в опасности кражи сессии, или тот же CSRF итп.