Искусство вторжения   ::   Митник Кевин

Страница: 278 из 415

Когда перед ним появилась входная форма с запросом имени пользователя и пароля, он запустил атаку SQL injection, как и планировал. В нормальном режиме, после того как пользователь введет свои имя и пароль — скажем, «davids» и «zl8M296q» — приложение использует эти входные данные для того, чтобы сгенерировать такую SQL-команду:

select record from users where user = 'davids' and password = 'z18M296q'

Если поле пользователя и поле пароля будут соответствовать информации в базе данных, тогда пользователя пускают в систему. Таким образом, все должно работать в нормальном режиме. А вот как проходила атака Роберта SQL-injection: в разделе для имени пользователя он написал — " or where password like "%

Для пароля он ввел аналогичную строку

" or where password like "%

Приложение использует эти входы и генерирует такую SQL-ко-манду:

select record from users where user = " or where password like '%' and password = "or where password like '%'

Элемент строки or where password like % говорит SQL принять запись, если пароль что угодно ( " % " — это пустышка). Обнаружив, что пароль удовлетворяет этому дикому условию, приложение впускает Роберта, как вполне законного пользователя, как если бы он ввел данные о законной авторизации. Система впускает его и связывает с данными первого пользователя в базе данных, которым обычно бывает администратор. Так и оказалось в нашем конкретном случае. Роберт не только вошел в систему, но и получил привилегии администратора.

Отсюда он получил возможность увидеть переписку всех сотрудников или авторизованных пользователей после успешного входа в систему.

|< Пред. 276 277 278 279 280 След. >|

Java книги

Контакты: [email protected]