Блог пользователя Proventus

Автор Proventus, история, 5 лет назад, По-английски
Изучая создание блогов на Codeforces, я заметил интересную вещь. Тег (/p) в тексте позволяет выбежать из параграфа и не фильтруется. Первая мысль которая приходит в подобной ситуации — "XSS!". Но не так быстро. CF фильтрует некоторые теги и запрещает добавлять их в пост, а также, убирает некоторые параметры из тегов(например onload или onclick в img).
Теперь мы можем делать запросы через браузер пользователя на нужный сервер, а к чему это ведёт — я уже описывал здесь. Возможно, это может привести к ещё более серьёзным последствиям, если хорошенько поковырть фильтр.
И напоследок, ссылка на тот-же счётчик просмотров поста, созданный через данную уязвимость.

Количество просмотров двух постов суммарно
P.S.: А ещё можно делать прикольное офромление текста)
P.P.S.: Когда уязвимость поправят, не кидайте сильно тапками в пост.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +3
  • Проголосовать: не нравится

Автор Proventus, история, 6 лет назад, По-русски

Вкладка волшебства на странице пользователя должна была работать до 10 января. Уже 12, но волшебство осталось.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +15
  • Проголосовать: не нравится

Автор Proventus, история, 6 лет назад, По-русски

Информация в этом посте уже является неактуальной для CF, оставляю для тех кому интересно. Данный счётчик уже не работает для codeforces.com, однако может продолжать работать на других сайтах

Использовав небольшую фичу, про которую я рассказывал в прошлом посте, я создал веб-сервис, который позволяет создавать свои счётчики просмотров для постов. Это очень простой скрип на php(который я прикрепляю к посту в комментариях).

На данный момент, скрипт крутится на бесплатном хостинге — поэтому счётчик может перестать работать. Если вы желаете стабильность для вашего счётчика, советую запускать на собственном сервере.

Как использовать:

Ссылка на счётчик

Скрипт принимает два GET параметра — id и met(сокращённо от method)

id — строка, которая определяет ваш счётчик.

met — c/i/v:

c(сокр. create) — Чтобы зарегистрировать id. Без регистрации id счётчик работать не будет. Если выводит сообщение "This id already taken" — id уже занят. Если возвращает пустую страницу — регистрация успешна.

i(сокр. increment) — Для самого счётчика. Возвращает картинку-филлер. Увеличивает количество просмотров на единицу.

v(сокр. view) — Отображение счётчика в виде картинки.

Пример использования в виде последовательности url:

https://maze-anarhy.000webhostapp.com/?id=proventus01&met=c — создание id

https://maze-anarhy.000webhostapp.com/?id=proventus01&met=i — как картинка-счётчик

https://maze-anarhy.000webhostapp.com/?id=proventus01&met=v — как количество просмотров

Смотри результат ниже. (Больше не работает)

Доработка и изменения скрипта приветствуются.

Количество просмотров данного поста: COUNTER

COUNTER

Полный текст и комментарии »

  • Проголосовать: нравится
  • -9
  • Проголосовать: не нравится

Автор Proventus, история, 6 лет назад, По-русски

Продолжая ковырять CF(мой прошлый пост), я вспомнил про возможность вложения картинок в посты и комментарии. Первой моей мыслью было — "Откуда codeforces.com их берёт?". Варианта было два — сохраняет на свой сервер, либо делает запрос по url. Выложив на бесплатный хостинг тестовую картинку и прикрепив её к посту, а потом удалив с сайта, я увидел, что изображение пропало. Из этого, я сделал вывод, что картинки берутся из url. Написав небольшой скрипт, который обычно используется для ловли cookie, я начал тест. Создав пост с url картинки, который указывал на мой скрипт с параметром GET cook=test(в этот момент файл на сервере содержал "reset"), и попробовав предпросмотр поста — файл на сервере переписался на "test". Получилось! Эта особенность позволяет нам, к примеру считать количество просмотров на посте.

Пример такого счётчика:

Количество просмотров(перезагрузки страниц и дубликаты картинок тоже считаются)

Однако, это может использоваться в дурных целей — например организации DDoS. Злоумышленник может создать коментарий к разбору задач с 10-20 картинками. Тогда, произойдёт (КоличествоОткрывшихРазбор * КоличествоКартинок)(примерно 30000) запросов на серевер.

Буду рад замечаниям и исправлением, как грамматических, так и технических ошибок.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +88
  • Проголосовать: не нравится

Автор Proventus, история, 6 лет назад, По-русски

Заметил недавно интересную особенность сайта codeforces. Точнее не сайта, а отдельного элемента. Я говорю про поиск по хэндлу. Если мы будем искать, к примеру по такому запросу:

Proventus

то система правильно перейдёт на страницу пользователя. Но если мы сформируем к примеру, такой запрос:

Proventus/../vertig1

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

Proventus/../../problemset

То вместо страницы пользователя, мы получим архив с задачами.

Интересная "фича". Не думаю что она кому-нибудь навредит, однако неприятно, когда система работает не так, как задумывалось.

Вероятно код поиска примерно такой:

Попробовать Перейти("codeforces.com/users/" + никнейм)

Иначе Сообщение("Не удалось найти этого пользователя")

Полный текст и комментарии »

  • Проголосовать: нравится
  • +40
  • Проголосовать: не нравится

Автор Proventus, история, 6 лет назад, По-русски

При изменении фотографии профиля страница перезагружается, больше ничего не происходит. Пробовал разные форматы(png,jpg) разных размеров(300х300, 1000х1000), ничего не меняется. Была ли у кого-нибудь похожая проблема? Как исправить?

Полный текст и комментарии »

  • Проголосовать: нравится
  • +5
  • Проголосовать: не нравится