Противодействие неавторизованному доступу к серверу Web-приложений с использованием механизма подложных SQL-запросов - page 3

что следует дальше. Соответственно значение пароля не участвует в
проверке иеслипользователь
admin
существует, то результатом запро-
са будет 1 иуспешный вход в защищенную часть БД.
Итак, мы смоглиуспешно пройтипроцедуру авторизациина сайте,
зная только имя пользователя. Как еще можно использовать найден-
ную уязвимость? Можно ввести в качестве имени пользователя следу-
ющую строку:
; drop table users - -
Результатом выполнения такого запроса может стать удаление таб-
лицы
Users
. Успешность этого шага зависит от привилегий пользова-
теля БД, от имени которого выполняется запрос. Следует использовать
учетную запись с максимальным набором привилегий.
Еще одна возможность — в поле “имя пользователя” или “пароль”
ввести ниже приведенные значения:
Login: hi or 1=1- -
Pass: hi or 1=1—
Если есть скрытое поле, необходимо загрузить исходный HTML
код, сохранить его на жестком диске, изменить URL и скрытое поле
соответственно.
<FORM action=http://duck/Search/search.asp method=post>
<input type=hidden name=A value= hi or 1=1- - >
</FORM>
Рассмотрим пример, который объясняет поведение конструкции
or 1=1- -
. Кроме обхода регистрации, также можно рассмотреть до-
полнительную информацию, которая обычно не доступна. Рассмотрим
asp-страницу, которая ссылается на другую страницу со следующим
URL:
В URL
category
— это имя переменной, и
food
— значение, при-
своенное этой переменной. Чтобы это реализовать, asp-страница долж-
на содержать следующий код:
v_cat = request( category )
sqlstr= SELECT * FROM product WHERE PCategory= & v_cat &
set rs=conn.execute(sqlstr)
Как видно, наша переменная будет объединена с
v_cat
и, таким
образом, SQL-запрос должен иметь вид:
SELECT * FROM product WHERE PCategory= food
Этот запрос должен возвратить набор, содержащий одну или бо-
лее строк, которые соответствуют условию
WHERE
, в данном случае
food
. Теперь изменим URL следующим образом:
or 1=1- -
SELECT * FROM product WHERE PCategory= food or 1=1- -‘
76 ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2006. № 3
1,2 4,5,6,7,8,9
Powered by FlippingBook