Перевод: Как найти уязвимости для атак SQL Injection в 2022 году?
@Ent_TranslateIBSQL Injection (также известная как инъекция на языке структурированных запросов) - одна из самых популярных и серьезных уязвимостей.

Это одна из самых распространенных и опасных уязвимостей в Интернете.
Она представляет собой вредоносный код, который может быть использован для обхода функций безопасности операционных систем.
Эта функциональность дает злоумышленникам максимальную свободу в создании и манипулировании структурой и содержимым сайта, позволяя им получить полный контроль над ним.
Плохо то, что SQL Injection трудно обнаружить и остановить в момент его эксплуатации.
Обнаруженная уязвимость SQL Injection может быть ужасающей, поскольку она позволяет злоумышленнику получить прямой доступ к основным данным на вашем сайте и потенциально скомпрометировать их.
В этой статье я расскажу вам, что такое SQL-инъекция и как ее обнаружить.
Что такое SQL-инъекция?
Эта атака заключается во вставке или "инъекции" SQL-запроса через входные данные от клиента к приложению.
Это позволяет злоумышленнику просматривать данные, которые он обычно получить не может.
Это могут быть данные, принадлежащие другим пользователям, или любые другие данные, доступ к которым имеет само приложение.
Во многих случаях злоумышленники могут изменять или удалять эти данные, вызывая стойкие изменения в содержимом или поведении приложения.
Основные команды SQL
- Команда Select - это вводный оператор, поскольку он будет использоваться при взаимодействии с другими командами. Это основной оператор в SQL.
- Команда Where - Это также базовый оператор в SQL. Пример- SELECT name, age FROM Class_details WHERE age < 10 Теперь из этой команды вы получите данные из столбцов name и age. Но будут получены только те данные, чей возраст меньше 10 лет.
- Команда Order - используется для сортировки результатов в порядке возрастания или убывания. Для сортировки по возрастанию используйте ASC, а для сортировки по убыванию - DESC.
Как проверить на наличие SQL-инъекции
Пример 1:
Рассмотрим запрос SELECT * FROM Table WHERE id='1';
Здесь запрос хочет сказать, что он хочет выбрать все данные из таблицы с идентификатором 1.
Теперь давайте разберемся, что мы хотим сделать для проверки на SQL Injection.
- если мы используем ', то будет false, а если используем '', то будет true
- если мы используем ", то это будет false, а если мы используем "", то это будет true
- если мы используем \, то это будет false, а если мы используем \\\\, то это будет true.
Я знаю, что вы немного запутались в понятиях true и false, но сейчас вы всё поймёте.
Итак, в качестве тестирования для сайта мы будем видеть только id, а возможно и все остальное, поэтому мы будем использовать следующее.
Допустим, URL имеет вид
www.website.com?id=1
и для этого запрос будет SELECT * FROM Table WHERE id='1';
Так что мы проверим это следующим образом
www.website.com?id=1'
или
www.website.com?id=1"
или
www.website.com?id=1\
поэтому они будут выглядеть следующим образом
SELECT * FROM Table WHERE id='1'';
SELECT * FROM Table WHERE id=’1'”;
SELECT * FROM Table WHERE id='1'\;
И вам становится понятно, что вам нужно выполнить запрос, чтобы использовать другой оператор SQL
SELECT * FROM Table WHERE id=’1'’’;
или вы можете использовать
SELECT * FROM Table WHERE id=’1'’’’’’’’’’’’UNION SELECT ‘2’;
это вернет данные с идентификатором 2.
Для примера 2 посетите www.cyberhacks200.org.
Некоторые советы по поиску SQL-инъекций
- Использование SQL map
sqlmap -u "http://website.com" - header="X-Forwarded-For: 1*" - dbs - batch - random-agent - threads=10 Injection marker: *
путем инъекции заголовка - Time-based sqli
'%2b(select*from(select(sleep(20))))a)%2b'
Для получения дополнительных советов посетите www.cyberhacks200.org.
Я надеюсь, что вам всем понравилась эта статья, если да, то оставляйте свои комментарии ниже, и если вы нашли какую-либо уязвимость, пожалуйста, дайте мне знать, я буду очень рад услышать об этом, и если вы хотите увидеть другие статьи, подобные этой, то оставляйте свои комментарии ниже.
Для написания своей собственной статьи для cyberhacks200.org вы можете связаться со мной.
Встретимся в другой статье.
До встречи
Берегите себя и счастливого взлома
Оригинал статьи - здесь.
Поддержите автора хлопками на Medium.
Перевод статьи был выполнен проектом перевод энтузиаста:
- 📚 @Ent_TranslateIB - Телеграмм канал с тематикой информационной безопасности
- 🔥 @Ent_Translate - Инстаграм проекта