Назад | Перейти на главную страницу

Можно ли использовать уязвимость SQL-инъекции с разрешением только на выбор, если я знал учетные данные администратора?

Мой друг указал на уязвимость 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 разрешения для пользователя, на которого они пытаются переключиться. Это не конфигурация по умолчанию, вам придется ее добавить (было бы довольно странно добавить и ее).

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