API, Bug Bounty, Bug Hunting, Remote Procedure Call (RPC)

#28 Bug Bounty v.2 — Тестирование API. Remote Procedure Call (RPC)

Здравствуйте, дорогие друзья.

Remote Procedure Call (RPC) — это старейшая форма связи, которую вы можете увидеть в приложении, начиная с 1980-х годов. Этот протокол является довольно простым, каждый HTTP-запрос привязывается к определенной функции.

каждый HTTP-запрос привязывается к определенной функции

Здесь есть несколько индикаторов, которые указывают на то, что это конечная точка RPC. Во-первых, это имя файла “xmlrpc.php”. XMLRPC использует XML, в то время как JSONRPC использует JSON для своего типа кодировки. Если бы эта конечная точка была JSONRPC API, данные содержались бы в строке JSON, а не в XML-документе, это действительно единственное различие между этими двумя

RPC API

В теле запроса вы видите два тега “MethodCall” и “methodName”, я упоминал ранее, что запросы RPC соответствуют именам функций, так что это еще один намек на то, что это RPC API. Если вы не знакомы с программированием, “method” — это «метод»,  и это означает то же самое, что и “функция». Здесь мы вызываем функцию “system.listMethods” и передаем нулевые аргументы. После отправки запроса сервер ответил XML-документом, содержащим список методов, предоставляемых этим API.

Вы знаете, что REST API используют несколько методов HTTP, таких как PUT, POST и DELETE, но RPC API используют только два метода — GET и POST. Итак, если вы видите HTTP-запрос, то он не работает. Запрос с использованием чего-то другого, кроме запроса GET или POST, вы знаете, что это, вероятно, не RPC API.

На этом все. Всем хорошего дня!

Цикл статей по Bug Bounty.