big_BRAT
03.02.2014, 11:11
Добрый день, нужна помощь, существует самописный сервер который принимает команды через 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%.
Вопрос: как то можно заставить сервер выполнить второй запрос?
Пример уязвимого кода:
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%.
Вопрос: как то можно заставить сервер выполнить второй запрос?