Как провести тестирование безопасности для API

У меня есть API вроде

"/getXXXX?ABC=X7TRYUV&Ab_DEF=true&Ab_XYZ=true&Ab_ExZ=ZXTY"

Как проверить уязвимость параметров запроса?

Какие типы строк я могу передать?

Я запустил API в Wapiti и инструменте SQLMAP, но не обнаружил никаких проблем. я тестировал его вручную, изменяя "Ab_ExZ=ZXTY" на 'CHR(91%2d1)'XTY

и он отфильтровывает результат как правильный параметр там, где он не должен отфильтровываться.

Спасибо, Бибек

1 ответ

К сожалению, ответ на ваш вопрос зависит от обстоятельств. OWASP предоставляет много полезной информации об атаках в стиле инъекций. Точные строки, которые вы должны использовать, зависят от технологии, лежащей в основе вашего решения, и символов, например завершающих символов, которые важны на каждом этапе обработки данных.

Отправной точкой для тестирования инъекции является попытка завершить выполнение оператора / команды. Например, в Oracle PL/SQL символы';будет работать, если кавычка закрывает строку, а точку с запятой завершает команду. Если запрос подвержен атакам с использованием инъекций, это, скорее всего, приведет к ошибке в базе данных для искаженного запроса.

Очевидно, что другие базы данных будут иметь немного другой синтаксис. Также стоит задуматься о базовой ОС. Если ввод в API в конечном итоге выполняется в командной строке, на базе Windows или Linux? Это изменит синтаксис, который вы хотите попробовать.

Наконец, если данные хранятся, где они затем отображаются? Если он отображается в веб-интерфейсе, вы можете попробовать ввести<b>очевидно, если ваш API позволяет сохранить это и затем отображать пользователю без экранирования, вы увидите текст, выделенный жирным шрифтом. Это указывало бы на атаку инъекцией второго порядка. (Фактический риск возникает, когда данные извлекаются, а не отправляются).

Я настоятельно рекомендую взглянуть на информацию об инъекциях, доступную на сайте OWASP. Включая примеры WebGoat, в которых вы можете попробовать провести тестирование в стиле инъекции на намеренно уязвимом веб-сайте. Принципы хорошо подходят для тестирования API.

Другие вопросы по тегам