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

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

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

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


Security testing. Введение.

Хочу рассказать о таком виде тестирования как тестирование безопасности или security testing. Речь пойдет о тестировании безопасности веб-сайтов. Кратко о том, что такое тестирование безопасности, какие его цели и как его проводят (что именно тестируют и как). Также, расскажу о том, какие инструменты используются для проведения тестирования безопасности сайта (по крайней мере, расскажу о тех, что я использовала).

Итак, что же это такое тестирование безопасности или security testing ?

Тестирование безопасности (Security testing) – это оценка уязвимости программного обеспечения к различным видам атак.

Виды атак бывают:
  • sql injection атака
  • xss атака
  • php including атака
  • подстановка параметров в url
  • DoS атака
  • брутфорс атака
Вообще-то атак больше :), но я расскажу только о тех, с которыми я сталкивалась и знаю, как проверить приложение на уязвимость к этим атакам.

Так что, читайте подробно о каждой атаке в следующих постах.
Надеюсь информация будет полезна.