«Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher»* — Альберт Эйнштейн Был вечер, и дел, как обычно, было много, но мне было лень.Теги: #идиоты #флэш #sql-инъекция #карательная психиатрия #ЧуланПо случайной ссылке я попал на один сайт, адрес которого не даю по понятным этическим соображениям.
Флэш-крафт; суть его такова: тыкаем в свободное место, и нам предлагают загрузить нашу картинку именно в это место и присвоить ей никнейм.
Моей фантазии не хватило, чтобы представить, сколько радости может принести человеку простая советская мигалка.
Мне хотелось посмотреть, как реализована, если вообще реализована, защита от автоматического ввода информации; может быть написать тривиального бота и занять пару десятков мест со своими картинками.
Загрузил фотку, написал ник.
Однако то, что я увидел в Fiddler, оказалось гораздо интереснее любого бота.
Итак, что мы видим? Обычный HTTP Post-запрос, в содержимом содержится какой-то бинарный мусор и — можете ли вы поверить своим глазам? - Что это? — SQL-запрос?! Да, граждане, мы с вами многое повидали.Мы видели переполнение буфера в C. Мы видели SQL-инъекции в плохой PHP-код. Нас это нисколько не удивит. Но Альберт Германович был чертовски прав, и мы, среднестатистические и бездарные люди, не можем угнаться за мыслями отдельных людей: пришло ли вам в голову сформировать на клиенте SQL-запрос и передать его на исполнение серверу? Бедно, бедно наше воображение.
О том, что нет санитарной обработки входа, я даже не говорю; Думаю, это уже очевидно.
Итак, введя в поле ввода текст в кавычках, мы получаем еще один повод для тихого веселья: сервер прямо и открыто, как и положено приличной программе, выдает ошибку MySQL.
Да, действительно, с синтаксисом не всё в порядке.Справедливости ради надо сказать, что просто заменить SQL в теле Post-запроса не получится — контрольная сумма где-то в бинарной части не совпадет. От инъекции через поле ввода текста мало что получится: есть ограничение на длину вводимого текста, а серверная часть благоразумно отказывается принимать несколько команд, разделенных точкой с запятой.
Эта элементарная предосторожность, конечно, никак не влияет на основную проблему — выполнение SQL-запроса, сгенерированного на стороне клиента.
Если есть определенное желание, то вполне можно заменить сам запрос, что и было сделано путем небольшой доработки флеш-части.
О подробностях я снова умолчу по этическим соображениям.
А если бы мы еще знали Флэша.
В качестве доказательства концепции мы меняем ник вновь зарегистрированного пользователя, выполнив SQL-запрос.
обновить набор `peoples` name=' новый псевдоним 'где имя=' старое прозвище '
Я думаю, само собой разумеется, что чьи-то намерения могут быть не столь мирными.Разумеется, администрация сайта была уведомлена об уязвимости.
По крайней мере я постарался, так как на сайте нет адресов ни вебмастера, ни администратора.
Мораль: используйте свой мозг, люди.
Пожалуйста.
P.S. В процессе написания этой статьи многие чуть не пострадали из-за того, что хаб не хотел загружать картинки при редактировании сохраненной версии, упорно вылетая с ошибкой Javascript «неперехваченное исключение: Отказано в разрешении на получение свойства HTMLDocument.getElementById».
Эта ошибка возникает при попытке вызвать sts_put_opener() из дочернего iframe. Это связано с тем, что родительский iframe находится на поддомене (paul7.habrahabr.ru), а дочерний — на основном, поэтому POST-запрос прошел успешно, но результатов я не получил.
Мне пришлось перехватывать ссылки с помощью того же верного Скрипача.
Это позор, честно говоря.
П.
П.
С.
Дорогой технический директор! Если вы читаете эту тему, прошу не переводить меня в тестеры! Мне временно так повезло.
Надеюсь.
* «Есть только две бесконечные вещи: Вселенная и человеческая глупость.
Правда, я не уверен насчет Вселенной.
«Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher»* — Альберт Эйнштейн Был вечер, и дел, как обычно, было много, но мне было лень.Теги: #идиоты #идиоты #флеш #sql-инъекция #карательная психиатрия #ЧуланПо случайной ссылке я попал на один сайт, адрес которого не даю по понятным этическим соображениям.
Флэш-крафт; суть его такова: тыкаем в свободное место, и нам предлагают загрузить нашу картинку именно в это место и присвоить ей никнейм.
Моей фантазии не хватило, чтобы представить, сколько радости может принести человеку простая советская мигалка.
Мне хотелось посмотреть, как реализована, если вообще реализована, защита от автоматического ввода информации; может быть написать тривиального бота и занять пару десятков мест со своими картинками.
Загрузил фотку, написал ник.
Однако то, что я увидел в Fiddler, оказалось гораздо интереснее любого бота.
Итак, что мы видим? Обычный HTTP Post-запрос, в содержимом содержится какой-то бинарный мусор и — можете ли вы поверить своим глазам? - Что это? — SQL-запрос?! Да, граждане, мы с вами многое повидали.Мы видели переполнение буфера в C. Мы видели SQL-инъекции в плохой PHP-код. Нас это нисколько не удивит. Но Альберт Германович был чертовски прав, и мы, среднестатистические и бездарные люди, не можем угнаться за мыслями отдельных людей: пришло ли вам в голову сформировать на клиенте SQL-запрос и передать его на исполнение серверу? Бедно, бедно наше воображение.
О том, что нет санитарной обработки входа, я даже не говорю; Думаю, это уже очевидно.
Итак, введя в поле ввода текст в кавычках, мы получаем еще один повод для тихого веселья: сервер прямо и открыто, как и положено приличной программе, выдает ошибку MySQL.
Да, действительно, с синтаксисом не всё в порядке.Справедливости ради надо сказать, что просто заменить SQL в теле Post-запроса не получится — контрольная сумма где-то в бинарной части не совпадет. От инъекции через поле ввода текста мало что получится: есть ограничение на длину вводимого текста, а серверная часть благоразумно отказывается принимать несколько команд, разделенных точкой с запятой.
Эта элементарная предосторожность, конечно, никак не влияет на основную проблему — выполнение SQL-запроса, сгенерированного на стороне клиента.
Если есть определенное желание, то вполне можно заменить сам запрос, что и было сделано путем небольшой доработки флеш-части.
О подробностях я снова умолчу по этическим соображениям.
А если бы мы еще знали Флэша.
В качестве доказательства концепции мы меняем никнейм вновь зарегистрированного пользователя.
Я думаю, само собой разумеется, что чьи-то намерения могут быть не столь мирными.Разумеется, администрация сайта была уведомлена об уязвимости.
По крайней мере я постарался, так как на сайте нет адресов ни вебмастера, ни администратора.
Мораль: используйте свой мозг, люди.
Пожалуйста.
P.S. В процессе написания этой статьи многие чуть не пострадали из-за того, что хаб не хотел загружать картинки при редактировании сохраненной версии, упорно вылетая с ошибкой Javascript «неперехваченное исключение: Отказано в разрешении на получение свойства HTMLDocument.getElementById».
Эта ошибка возникает при попытке вызвать sts_put_opener() из дочернего iframe. Это связано с тем, что родительский iframe находится на поддомене (paul7.habrahabr.ru), а дочерний — на основном, поэтому POST-запрос прошел успешно, но результатов я не получил.
Мне пришлось перехватывать ссылки с помощью того же верного Скрипача.
Это позор, честно говоря.
П.
П.
С.
Дорогой технический директор! Если вы читаете эту тему, прошу не переводить меня в тестеры! Мне временно так повезло.
Надеюсь.
* «Есть только две бесконечные вещи: Вселенная и человеческая глупость.
Правда, я не уверен насчет Вселенной.
-
Ноутбук Hp Compaq Series 6530B Nb014Ea
19 Oct, 24 -
История Внедрения Sre В Тинькофф
19 Oct, 24 -
Самая Большая Световая Скульптура
19 Oct, 24