ИЗ МЕШКА ХАКЕРСКИХ ШТУЧЕК: АТАКА SQL INJECTION

После того, как он декомпилировал программу, Роберт обратился к изучению кода, чтобы понять, будет ли приложение helpdesk подвержено SQL injection, методу атаки, который использует распространенную компьютерную оплошность. Программист, думающий о безопасности системы, постарается отфильтровать все запросы внешних пользователей, в которых встречаются такие символы, как «апостроф», «знак цитирования», «больше» и «меньше». Если не отбрасывать программы с подобными символами, то злонамеренный пользователь может обмануть приложение и проникнуть в систему.

Роберт выяснил, что приложение helpdesk проводит необходимые проверки на подобные символы, чтобы помешать хакерам использовать SQL injection. Большинство хакеров перегрузили бы программу ASP на Интернет-сервер и использовали бы ее, но не Роберт! У него были более обширные планы, чем использовать простейшую лазейку для проникновения в свою мишенью.

«Я подумал: „Ситуация выглядит очень забавной, и надо получить от нее максимум удовольствия“.

Я сказал себе: «Хорошо, я использую SQL-injection, слегка подправив проверку на достоверность». Я нашел строку, где содержался список недопустимых символов, и изменил ее. По-моему, в список входило «подчеркивание», или что-то похожее, чего я не должен был использовать, но в то же время его отсутствие ни на что не влияло».

Другими словами, он немного видоизменил программу (используя цифровой редактор для взлома программы, которая должна была проверять символы), так что определенные специальные символы больше не отвергались. После этого он мог незаметно производить SQL-injection, не влияя на всю структуру работы приложения для всех остальных. Еще одним преимуществом такого развития событий было то, что администратор, скорее всего, не стал бы проверять сохранность приложения helpdesk, поскольку не было никаких сигналов о том, что оно взломано.

Далее Роберт послал модифицированную версию приложения helpdesk на Интернет-сервер, заменив им оригинальную версию. Подобно тому, как некоторые люди любят привозить марки, открытки или спичечные коробки с видами тех мест, где они побывали, хакеры иногда хранят не только полученную добычу, но и тексты программ, которые они использовали в своей работе. У Роберта до сих пор хранится текст той программы в двоичном скомпилированном виде.

Поскольку он работал из дома (дело рискованное, если вы только сознательно не хотите попасться), то свою «новую и улучшенную» версию приложения helpdesk он загружал через целую цепь промежуточных прокси-серверов (это серверы, работающие посредниками между компьютером пользователя и компьютером, в который он стремится проникнуть). Если пользователь делает запрос о ресурсе с компьютера «А», этот запрос направляется на прокси-сервер, который в свою очередь делает запрос и получает ответ от компьютера «А», а потом уже переправляет его клиенту.

Прокси-серверы обычно используются для доступа к ресурсам Интернета из-за межсетевого экрана. Роберт повысил степень своей безопасности, используя несколько прокси-серверов, расположенных в различных частях мира, чтобы снизить вероятность быть пойманным. Так называемые «открытые прокси-серверы» обычно используются для того, чтобы замаскировать место, откуда исходит кибератака.

При помощи модифицированной версии приложения helpdesk, загруженного на компьютер и запущенного, Роберт соединился с сайтом-мишенью, использующим Интернет-браузер. Когда перед ним появилась входная форма с запросом имени пользователя и пароля, он запустил атаку SQL injection, как и планировал. В нормальном режиме, после того как пользователь введет свои имя и пароль — скажем, «davids» и «zl8M296q» — приложение использует эти входные данные для того, чтобы сгенерировать такую SQL-команду:

select record from users where user = 'davids' and password = 'z18M296q'

Если поле пользователя и поле пароля будут соответствовать информации в базе данных, тогда пользователя пускают в систему. Таким образом, все должно работать в нормальном режиме. А вот как проходила атака Роберта SQL-injection: в разделе для имени пользователя он написал — " orwherepasswordlike"%


Логин
Пароль
Запомнить меня