Написать пост

gugglegum

Про автоматическую подписку на клубы

Навеяно этим недавним постом: http://autokadabra.ru/shouts/49359, и до этого серией моих постов на ту же тему. Я задался вопросом: если это не разработчики автокадабры, то может быть кто-то эксплуатирует какую-то уязвимость в автокадабре в своих корыстных целях? Стал искать. Сначала я исключил самый простой вариант, когда подписка выполняется методом GET (либо выполняется методом POST, но сервер принимает так же и GET). Тогда бы подписка на клуб могла производиться путем вставки в пост или в комментарий картинки с хитрым URL. Картинка бы всё равно бы не отобразилась и никто бы ничего не заметил. Но, к счастью, разработчики от этой уязвимости защитились. По крайней мере у меня не получилось подписать себя таким способом.

Тогда я попробовал другой вариант посложнее и требующий небольшого социального инжениринга (пользователь должен кликнуть по ссылке). И этот способ у меня сработал. Разработчики не сделали от него защиту. Продемонстрирую на примере...

Предположим, я кидаю вам вот такую ссылку со словами:

Смотрите какое прикольное видео http://bit.ly/Lwww4G -- собака сзади толкает тележку с человеком.

Вы кликаете по этой ссылке, вас несколько раз редиректит, в итоге вы попадаете на страницу YouTube с нужным роликом, но при этом вы оказываетесь подписаны на мой недавно созданный клуб "Быдло-тюнинг", который на данный момент испытывает дефицит подписчиков (на текущий момент их всего 8, считая меня). Но заметили бы вы это, если бы я об этом не сказал?

Я не уверен, но может быть примерно таким способом люди время от времени с удивлением обнаруживают, что они подписаны на клубы, на которые не подписывались?
14 комментариев 8нравится избранное
xDemon
Fukurokudzu
Phaeton
awesomebanana
hugarin
Allalala
Djels
Chevava
  • SlevinCalebra
    11 мая 2012 в 19:02
    Ох уж эти хацкеры=) подписалось=)
  • Chevava
    11 мая 2012 в 19:12
    Круто )
  • bobsmith
    11 мая 2012 в 20:12
    чёт не сработало. Собака смишная
    • gugglegum
      11 мая 2012 в 23:02
      Либо браузер странный, либо просто не сработало с первого раза. Там таймаут 1 секунда, если фрейм не подгрузился и запрос не успел послаться, то может не сработать. Я не стал заморачиваться делать более сложно, но правильно.
  • lafredo
    12 мая 2012 в 13:40
    Все новые клубы в подписке отображаются в низу списка. Так можно их вычислить.
  • awesomebanana
    13 мая 2012 в 03:35
    Подписался.
  • Fukurokudzu
    14 мая 2012 в 11:13
    сработало ок. а что конкретно происходит во время редиректов? мне в образовательных целях :)
    • gugglegum
      14 мая 2012 в 14:34
      Там сначала идет редирект на мою мошенническую страницу, на которой в невидимом ифрейме подгружается POST-форма на подписку на мой клуб, а скрипт в body.onLoad сабмитит эту форму и подписка осуществляется. Тем временем основная страница с задержкой 1 секунду редиректится на страницу ютуба. Штука в том, что автокадабра не проверяет откуда пришел запрос на подписку. Авторизация действует, POST-запрос содержит правильные параметры -- всё. Эта атака называется Cross-site request forgery. Это не является уязвимостью в привычном смысле, но такое использование функционала сайта на стороне может быть нежелательным, как здесь, например.

      Более подробно я писал об этой штуке в 2008 году на своём сайте: http://web-notes.ru/2008/09/csrf/
      • Fukurokudzu
        14 мая 2012 в 14:49
        csrf. много упоминаний видел, но в подробности не вдавался. а чем защищаться? рефер проверять? подходят ли до этого проверки переменных сессии и кук? для комментов и лайков тут на кадабре вроде какой-то токен используется.
        • gugglegum
          14 мая 2012 в 15:06
          Ты по ссылочке-то пройди, я там как раз на эти вопросы ответил.
          • Fukurokudzu
            14 мая 2012 в 15:30
            ага, благодарю. получается, что при включенном в апаче http-only дополнительное поле нужно генерить еще на стороне сервера... хм.
            • gugglegum
              14 мая 2012 в 15:59
              Да. Можно прямо SessionID, можно что-нибудь типа md5(SessionID + "соль")
              • Fukurokudzu
                14 мая 2012 в 16:03
                надо будет пробежаться по всем своим формам.
  • xDemon
    15 мая 2012 в 17:27
    Не подписался, но почему-то разлогинился... Уже пофиксили?
Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста, или зарегистрируйтесь.