четверг, 29 января 2009 г.

Security testing. SQL injection.

Итак, начнем разбирать виды атак и методы тестирования подверженности сайта этим атакам.

Sql injection атака представляет собой уязвимость, которая возникает из-за того, что программист в коде недостаточно хорошо проверяет (или, вообще не проверяет) принятые от пользователя данные.

Как проверить?
Ищем на сайте место, где в url передаются какие-то параметры.
Например, http://site/test.php?id=12
Немного изменяем значение параметра (самый элементарный способ – добавляем кавычку :) ), вот так
http://site/test.php?id=12’ и выполняем.

Если вы получили что-то вроде
«You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' ORDER BY p.pid DESC LIMIT 0, 20' at line 12»

Радуйтесь! Вы нашли уязвимость на сайте :)

PS: «Радуйтесь» - это я для тестеров написала. Программисты тут, конечно, должны очень огорчаться :)

Вот, собственно и все. Для хакеров, которые будут ломать сайт, это, конечно, только начало. Дальше они начнут составлять всякие каверзные запросы, подбирать количество полей, имена колонок таблиц, потом сами названия таблиц … в конечном итоге – стырят логин и пароль админа :) И сделают с сайтом, все, что захотят.

Ну а для нас, скромных тестеров, подтверждения наличия уязвимости вполне достаточно, чтобы репортовать страшный баг :) и, не теряя в этом месте больше драгоценного времени, идти далее заниматься своим делом, тоесть ломать сайт в других местах и другими методами ;)

Ведь столько всего еще нужно поломать... :)


Комментариев нет:

Отправить комментарий