Мой друг указал на уязвимость sql-инъекции в одном приложении, с которым я работаю.
Этот параметр поиска:
'; exec xp_cmdshell 'dir'; --
Вернул сообщение:
The EXECUTE permission was denied on the object
'xp_cmdshell', database 'mssqlsystemresource', schema 'sys'.
Поскольку поиск запускается из учетной записи, у которой есть только права выбора для нескольких таблиц и хранимых процедур.
Мне было интересно, если злоумышленник узнал информацию для входа в учетную запись администратора для сервера sql, могли бы они использовать учетные данные для получения корневого доступа к машине через оболочку cmd или другую непослушную работу?
Возможно, SQL-инъекция может измениться на пользователя с более высокими привилегиями на SQL-сервере, используя exec as {credentials}
. Однако исходный пользователь, выполняющий запрос, должен иметь IMPERSONATE
разрешения для пользователя, на которого они пытаются переключиться. Это не конфигурация по умолчанию, вам придется ее добавить (было бы довольно странно добавить и ее).
На самом деле не имеет значения, возможно это или нет, у вас есть серьезная проблема, которую вы должны искать для решения. Эту команду даже не следовало отправлять обратно на сервер.