#27 Bug Bounty v.2 — Тестирование API. Rest API
Здравствуйте, дорогие друзья.
Когда-то приложения создавались с использованием одного языка, такого как PHP, но архитектура современных приложений, как правило, выглядит немного по-другому. Большинство современных приложений разделены на две части: интерфейс и серверную часть, как показано ниже:
Как упоминалось ранее, приложение разделено на интерфейс и серверную часть.
Интерфейс — это веб-интерфейс, который вы видите в своем браузере, обычно он написан на современном javascript-фреймворке, таком как ReactJS или AngularJS. Серверная часть — это API, и она может быть написана на нескольких языках.
При работе с приложениями такого типа вам необходимо знать определенные вещи и ознакомиться с ними, если вы хотите добиться успеха. Существует несколько типов API, и каждый из них немного отличается, поэтому, прежде чем приступить к взлому API, вам необходимо понять несколько вещей.
API
Rest API
Если вы заметите, что приложение обращается к серверному API 9/10 раз, это будет REST API интерфейс прикладного программирования. Пример запроса в Burp к REST API может выглядеть примерно так, как показано на рисунке ниже:
При просмотре этого запроса первым признаком, указывающим на то, что это запрос к REST API, является тот факт, что данные запроса представляют собой строку JSON. Строки JSON широко используются в REST API. Другим признаком является то, что приложение отправляет запрос PUT. Метод PUT является одним из нескольких HTTP-методов, связанных с REST API, как показано в таблице ниже:
Теперь, когда вы знаете эту информацию, вы можете сказать, что предыдущий запрос PUT в Burp обновлял “param1” и присваивал ему значение “value1”. Еще один признак того, что вы имеете дело с REST API, — это когда HTTP-ответ содержит MIME-тип JSON, как показано в приведенных ниже запросах Burp:
Как упоминалось ранее, подавляющее большинство REST API используют JSON, поэтому, если вы получите ответ в формате JSON, вы, вероятно, имеете дело с REST API.
На этом все. Всем хорошего дня!