Инъекция в JSON-RPC

Discussion in 'Песочница' started by big_BRAT, 3 Feb 2014.

  1. big_BRAT

    big_BRAT Elder - Старейшина

    Joined:
    23 Dec 2006
    Messages:
    77
    Likes Received:
    64
    Reputations:
    7
    Добрый день, нужна помощь, существует самописный сервер который принимает команды через json-rpc v2.
    Пример уязвимого кода:
    PHP:
    $userid $_GET['userid'];
    $code '{"method":"GetUser", "id":"1", "params":["$userid"]}';
    Пример запроса:
    Code:
    {"method":"GetUser", "id":"1", "params":["777"]}
    Уязвимый параметр userid, через него формирую второй запрос на добавление пользователя, на выходе получаю такой запрос:
    Пример запроса:
    Code:
    {"method":"GetUser", "id":"1", "params":["777"]},{"method":"AddUser", "id":"1", "params":["system"]}
    Но есть проблема так как у нас сразу определено что это объект (начинается с { сервер обрабатывает только первый запрос, второй игнорирует), если бы сразу было определено что это массив объектов (начинался бы с [{), то запрос выполнился на все 100%.

    Вопрос: как то можно заставить сервер выполнить второй запрос?