English Deutsch Français Nederlands Español Italiano Português 日本語 中文 한국어 हिन्दी తెలుగు मराठी தமிழ் Türkçe Ελληνικά Polski Čeština Magyar Svenska Dansk Suomi Українська العربية Indonesia

Command Injection Attack

Командная атака взлома (Command Injection Attack) - это когда злоумышленник использует вводимые данные, чтобы запустить несанкционированные команды на системе. Для программиста это может показаться неопасным, но на самом деле это может привести к серьезным последствиям для пользователей и системы в целом.

Пример:

Допустим, что у нас есть веб-страница, которая принимает имя пользователя и пароль, а затем проверяет, есть ли у данного пользователя права на вход в систему.

Вот как это может выглядеть на языке Python:

username = input("Введите имя пользователя: ")
password = input("Введите пароль: ")
query = "SELECT * FROM users WHERE username='" + username + "' AND password='" + password + "';"
 
result = execute_query(query)
if len(result) > 0:
    print("Вы вошли в систему")
else:
    print("Неправильное имя пользователя или пароль")

Хорошо, казалось бы, все в порядке. Но что, если пользователь вводит следующее имя пользователя:

' OR 1=1; DROP TABLE users; --`

Тут злоумышленник ввел имя пользователя, которое закончивается на ‘ (одинарную кавычку), а затем включил кучу простых SQL-комманд. В результате запроса, он модифицирует SQL-запрос, чтобы он выглядел следующим образом:

SELECT * FROM users WHERE username='' OR 1=1; DROP TABLE users; --' AND password=''

Это приведет к тому, что атакующий удаляет таблицу пользователей, что серьезно нарушит работу приложения.

Командные атаки опасны, их нужно предотвращать. Код нужно всегда проверять, а также использовать стандартные библиотеки с фильтрами и методы подготовки запросов.