Вторую часть заголовка я взял из статьи вики. Забавно звучит.
Легкое чтиво, веселого проникновения. Я хотел уже запостить котиков на страничке, нажал кнопку предпросмотр, увидел погрузку контента и мой браузер на пол секунды повис, развернув чуть ниже кнопки «добавить», «мой будущий пост». Я нажал добавить, и мне сообщили, что я должен написать минимум два тега к посту. Я набрал «милые котики» — чуть ниже снова появился блок, в котором можно было подобрать популярные теги. Я решил, что это очень хорошо и такой скрипт мне нужен для коллекции. Не долго думая, я выдрал из страницы javascript, открыл и увидел комментарии к коду на родном русском.
Было очень скучно, и я решил провести маленький взлом с разрешения администрации, для того чтобы проверить свои силы, знание языков и спецификаций. Всё исследование заняло у меня 2 дня, по 3-4 часа в день.
Я решил проверить формы и попробовать что-то сломать, увидеть ошибку или что-то еще. Они были достаточно хорошо защищены: ни намека на sql или что-то такое ужасное. Ошибок не было совсем, о чем я и написал администратору.
После, проверяя наш js файл, я увидел, что несколько переменных совсем не фильтруются на стороне клиента, и можно на странице выполнить любой код, который я вставлю в форму. Первым же делом я вставил классический.
<script>alert(1)</script>
С небес опустилось окошко. Оно гласило, что все в этом мире равно 1.
Читать полностью »