Внедрение SQL в WordPress: инструменты и методы предотвращения атак
Опубликовано: 2020-09-24
SQL-инъекция раньше была широко используемым методом взлома для манипулирования базой данных WordPress. В настоящее время популярны межсайтовые сценарии (XSS), которые стали методом номер один для взлома сайта WordPress.
В этом руководстве я расскажу об основах WordPress SQL Injection и о том, как от этого избавиться. В следующей части я расскажу о межсайтовом скриптинге. Давайте начнем!
- Что такое SQL-инъекция?
- Точки входа для атак с использованием SQL-инъекций
- Почему атаки с использованием SQL-инъекций распространены?
- Как работает SQL-инъекция?
- Способы предотвращения внедрения SQL-кода в WordPress
- Совет №1 Сканирование уязвимостей, связанных с внедрением SQL-кода
- Совет №2 Обновите, обновите, обновите!
- Совет №3 Тема и плагины WordPress
- Совет №4. Используйте плагины доверенных форм
- Совет № 5: Скрыть версию WordPress
- Совет № 6: изменение префикса базы данных
- Совет № 7 Всегда делайте резервные копии
Совет № 8 Храните журналы - Совет № 9 Используйте брандмауэр
- Совет № 10 Удалите ненужные функции базы данных
- Часто задаваемые вопросы
- Заключительные слова!
Что такое SQL-инъекция?
SQL-инъекция - это результат лазеек в кодировке серверной части. Злоумышленник может легко злоупотребить полями ввода, вставив вредоносный код, который может выполнять команды SQL и может создавать, извлекать, обновлять и даже удалять данные в базе данных.
SQL - это сокращенная форма языка структурированных запросов - наиболее широко используемого языка баз данных в веб-разработке. Вот несколько самых популярных движков баз данных, использующих SQL.
Базы данных с использованием SQL
У нас есть много доступного на рынке программного обеспечения для баз данных. К популярным относятся:
- Oracle
- MySQL
- SQL Server
- PostgreSQL
- MongoDB и др.
Как видите, MySQL занимает второе место в списке. WordPress, который использует только SQL, составляет более 35% WWW и стал самой привлекательной целью для злоумышленников.

Точки входа для атак с использованием SQL-инъекций
Все поля ввода считаются наиболее распространенными точками входа для атак SQL Injection. Говоря языком непрофессионала, мы можем сказать:
- Формы подписки
- Формы входа
- Контактные формы
- Поиск по сайту
- Поля обратной связи
- Тележки для покупок
Почему атаки с использованием SQL-инъекций распространены?
Для этого может быть несколько причин, но вот самые распространенные, которые я вспоминаю при написании руководства.
- Большинство баз данных сайтов основаны на SQL.
- WordPress - наиболее широко используемая CMS использует SQL для базы данных
- Почти все веб-сайты имеют поля ввода для сбора информации от посетителей.
- На всех веб-сайтах есть хотя бы одна точка входа для SQL-инъекций.
- Инструменты сканирования SQL Injection легко доступны в Интернете
- Не требует каких-либо технических сложностей для использования
Как работает SQL-инъекция?
Например, у вас есть форма связи, в которой нужно ввести номер телефона. Должны быть определенные критерии, например, нужно вводить ограниченные числа только в правильном формате.
Большинство разработчиков, которые не знают о проверках ввода, могут установить это поле как обычный текст, что означает, что можно ввести любую строку, которая также может быть вредоносным кодом. Используя некоторые измененные запросы SQL, можно запросить имя пользователя и пароль администратора.
Примеры внедрения SQL в WordPress
Вы можете найти множество уязвимостей SQL Injection с помощью простого поиска Google. Но сегодня позвольте мне привести пример из реальной жизни: достаточно взглянуть на игровую индустрию. Так получилось, что многие атаки с использованием SQL-инъекций сосредоточены на видеоиграх, одной из крупнейших и наиболее прибыльных отраслей в мире.
Кроме того, в прошлом хакеры также атаковали отдельные веб-сайты, блоги, магазины электронной коммерции и некоторые из крупнейших предприятий.
Это происходит давно, еще один пример уязвимости в WordPress был зарегистрирован еще в сентябре 2017 года. Ядро WordPress не было напрямую затронуто этой уязвимостью, однако был выпущен патч (WordPress 4.8.3), чтобы предотвратить его влияние на плагины и темы WordPress. .
Энтони Феррара, человек, стоящий за вышеупомянутой уязвимостью, написал подробное руководство по WPBD SQL Injection, как это может повлиять на сайт WordPress и мерам предосторожности для каждого пользователя WordPress.
Не существует надежного способа защитить сайт WordPress. Фактически, даже плагин безопасности WordPress был затронут в прошлом. В 2014 году один из самых популярных подключаемых модулей безопасности продемонстрировал ДВЕ уязвимости, допускающие SQL-инъекцию.
Способы предотвращения внедрения SQL-кода в WordPress
Как было сказано ранее, полностью избавиться от попыток взлома невозможно. Однако можно свести к минимуму риск взлома. Вот некоторые из наиболее распространенных методов, которые могут помочь предотвратить такие атаки.
Ищете лучшую производительность и безопасность?
Перенесите свой сайт WooCommerce на Cloudways без каких-либо затрат.
Совет №1 Сканирование уязвимостей, связанных с внедрением SQL-кода
Вы можете найти ряд онлайн-инструментов для сканирования вашего сайта WordPress. Я составил список с самым высоким рейтингом, где все, что вам нужно сделать, это просто ввести URL-адрес сайта WordPress и начать сканирование на предмет обнаруженных уязвимостей.
- Сканирование безопасности WordPress - проверяет наличие основных уязвимостей на вашем сайте WordPress. Расширенное сканирование доступно с премиум-обновлением.
- Sucuri SiteCheck - ваш сайт WordPress может быть проверен на наличие известных вредоносных программ, статуса в черном списке, ошибок и устаревания вашего сайта.
- WPScan - автономный сканер уязвимостей, бесплатный для личного использования. Вы также можете получить платную лицензию для коммерческого использования.
Запустив отчет о сканировании, вы можете точно увидеть, на каких областях нужно сосредоточиться для повышения безопасности WordPress.
Совет №2 Обновите, обновите, обновите!
Самое важное для каждого пользователя WordPress! Обновляйте все, включая ядро WordPress, тему и плагины.

Ядро WordPress
Согласно официальной статистике WordPress, только 29,3% сайтов WordPress используют последнюю версию (5.5.x). Все предыдущие версии могут быть уязвимы и могут быть взломаны. В приведенном выше примере уязвимости SQL Injection вы видите, что все сайты с более ранней версией уязвимы для обнаруженной уязвимости. Если ваш сайт взломали, надеюсь, вы знаете, кто будет виноват!

Версии PHP
PHP, бэкэнд WordPress, был значительно улучшен за последние несколько лет. Внесено множество патчей и изменений, ориентированных на производительность. Но все же более 23% пользователей WordPress используют PHP 7.2, что может быть одним из факторов внедрения SQL-кода в WordPress. Последняя версия PHP - 7.4.
Примечание. Если ваш хостинг WordPress не поддерживает последние версии PHP, пора немедленно переключить хост на управляемый хостинг WordPress, который поддерживает последние версии PHP, например Cloudways.

Совет №3 Тема и плагины WordPress
Большинство уязвимостей, включая SQL-инъекцию в WordPress, были обнаружены в плагинах и темах, а не в ядре WordPress. Следите за обновлениями, исправлениями и адаптируйтесь соответственно.
Если тема и плагин не обновляются регулярно, это может быть вопросительным знаком на вашем сайте WordPress. Всегда используйте тему / плагин, которые часто обновляются.
Примечание. Перед выполнением обновления проверьте совместимость ядра, тем и плагинов WordPress, чтобы убедиться, что ваш сайт работает должным образом. Для тестирования вы можете сделать копию своего действующего веб-сайта, а затем проверить совместимость в промежуточной среде WordPress.
Совет №4. Используйте плагины доверенных форм
Если вы ведете бизнес или даже ведете простой блог, вы должны знать важность таких форм, как регистрационные формы, формы входа, контактные формы и т. Д. С рядом плагинов, доступных в репозитории WordPress, трудно найти лучший из них. Поэтому, чтобы сузить область поиска, мы составили список лучших плагинов WordPress Form.
Примечание: не забудьте проверить ранее обнаруженные уязвимости и способы их устранения, прежде чем выбирать какой-либо плагин.
Совет № 5: Скрыть версию WordPress
Всегда рекомендуется не показывать версию WordPress публично. Общедоступность этой информации может облегчить злоумышленникам использование известных уязвимостей в конкретной версии.
Чтобы скрыть версию WordPress, просто скопируйте и вставьте под строкой кода в файл functions.php вашей активной темы.
remove_action ('wp_head', 'wp_generator');
Совет № 6: изменение префикса базы данных
При установке WordPress по умолчанию используется префикс базы данных « wp_ ». Большинство пользователей WordPress игнорируют и просто устанавливают с настройками по умолчанию. Угадывать таблицы базы данных стало проще с помощью техники SQL Injection.
Не волнуйтесь, если у вас уже установлен WordPress. Есть отличное руководство по изменению префикса базы данных в WordPress.
Совет № 7 Всегда делайте резервные копии
Резервные копии могут не иметь прямого отношения к SQL-инъекции. Но это может помочь вам восстановить взломанный сайт. Резервные копии WordPress можно хранить двумя способами:
- Локальная резервная копия : резервная копия, которая создается автоматически и / или вручную и находится у вашего хостинг-провайдера. Не рекомендуется хранить локальную резервную копию, если вы используете общий хостинг, поскольку после взлома сервера вы также можете потерять резервные копии. Однако, если ваш сервер находится в надежных руках, таких как Cloudways, вы можете хранить локальные резервные копии для WordPress.
- Внешнее резервное копирование: автоматические и / или ручные резервные копии будут созданы и отправлены в желаемое внешнее хранилище, такое как Google Drive, Dropbox, Amazon S3 и т. Д. Мы написали подробное руководство по резервному копированию сайтов WordPress.
Совет № 8 Храните журналы
Дре Армеда, соучредитель Sucuri, однажды сказал:
Люди являются и будут оставаться самой большой проблемой безопасности WordPress.
Это означает, что вы должны внести свой вклад. Следите за изменениями, и вы должны вести журнал всего, что происходит на вашем сайте WordPress. Это поможет вам отслеживать изменения, внесенные вами и / или злоумышленником, чтобы вы могли действовать соответствующим образом.
Есть отличный плагин для журнала аудита безопасности WordPress, который наверняка вам поможет! Кроме того, ваш хостинг-провайдер также ведет журналы всего. Время от времени читайте журналы.
Совет № 9 Используйте брандмауэр
Одна из лучших и важных вещей - использовать брандмауэр, который гарантирует безопасность и защиту данных клиентов. В дополнение к этому вы также можете определить уровень доступа пользователей на основе различных факторов, таких как подписанный пакет. Если вы используете Cloudways, вам не о чем беспокоиться. Все серверы, размещенные в Cloudways, защищены межсетевыми экранами на уровне ОС, которые отфильтровывают вредоносный трафик и не позволяют злоумышленникам.
Совет № 10 Удалите ненужные функции базы данных
Один из наиболее эффективных методов удаления из базы данных ненужных функций и содержимого базы данных. Тем более он уязвим для потенциальной атаки с использованием SQL-инъекции. Чтобы этого не произошло, нормализуйте базу данных и сделайте свой сайт лучше и умнее.
Часто задаваемые вопросы
В: Что такое SQL-инъекция?
О: SQL-инъекция - это результат лазеек в коде серверной части. Злоумышленник может легко злоупотребить полями ввода, вставив вредоносный код, который может выполнять команды SQL и может создавать, извлекать, обновлять и даже удалять данные в базе данных.
В: Что представляет собой пример внедрения SQL в WordPress?
О: Это происходит уже давно, еще один пример уязвимости в WordPress был зарегистрирован еще в сентябре 2017 года. WordPress Core не был напрямую затронут этой уязвимостью, однако был выпущен патч (WordPress 4.8.3), чтобы предотвратить его влияние на плагины WordPress. и темы.
В: Что делает SQL-инъекция?
О: SQL-инъекция была самой простой и широко используемой хакерской техникой для манипулирования базой данных WordPress. В настоящее время популярны межсайтовые сценарии (XSS), которые стали методом номер один для взлома сайта WordPress.
Заключительные слова!
Как было сказано ранее, надежного способа защитить сайт WordPress не существует. Всегда есть возможность получить взлом, это может быть из-за уязвимости в ядре, теме и плагинах. Вот почему всегда предлагается ОБНОВЛЯТЬСЯ! SQL-инъекция сильно контролировалась в последние несколько лет.
Если вы когда-либо сталкивались с какой-либо атакой WordPress SQL Injection, поделитесь своим опытом, а также о том, как от нее избавиться. Я уверен, что это поможет другим пользователям WordPress.
