Какие-либо уязвимости безопасности в этом ответе JSON?

#json #security #networking

#json #Безопасность #сеть

Вопрос:

Мне пришлось обновить форму на определенной веб-странице, чтобы изменить то, что я хотел. Мне не удалось этого сделать, но вместо отправки простого текстового ответа, в котором говорится, например, «Это не может работать», они отправили на дисплей весь ответ в формате JSON. Мне просто любопытно, представляет ли этот ответ какие-либо уязвимости безопасности для меня или сервера, с которым я связался для обработки моего запроса?

P.S. ‘***’ в ответе указаны так, потому что я не уверен, правильно ли предоставлять эту информацию. Однако, даже без этого, ответ довольно интуитивно понятен.

Это ответ:

{«name»: «StatusCodeError», «StatusCode»: 409, «message»: «409 — [object Object]», «error»:{«status»: «сбой», «message»: «Электронное письмо уже принято.»,»code»:91,»data»:null,»error»:{«message»:»None»}},»options»:{«uri»:»*********»,»method»:»POST»,»headers»:{«Authorization»:» Носитель *********=»,»Cookie»:»*********=;cm_sub=denied»,»User-Agent»:»********»,»Accept-Language»:»en-US»,»Original-Accept-Language»:»********»,»X-********-InstallId»:»*****»,»X-*****-AppState»:»active»,»X-*****-Parent-Rid»:»********»,»X-*****-Root-Rid»:»********»,»X-*****-Rid»:»*****»,»X-Pixel-Ratio»:1,»X-*****-App-Type»:5,»X-Prefer-User-Locale»:»1″,»X-Real-Ip»:»********»,»X-*****-Real-Ip»:»*****»,»X-*****-Csrf»:»********»,»X-*****-Browser-Extension-Installed»:»false»,»X-********-Referrer»:»********»,»X-Bot»:»false»,»X-Referrer»:»********»,»X-Url»:»********»},»form»:{«base_scheme»:»https»,»client_id»:1431601,»timestamp»:*****,»country»:»US»,»email»:»*****»,»oauth_signature»:»********»},»traceId»:false,»parseJson»:true,»resolveWithFullResponse»:true,»json»:true,»simple»:true},»response»:{«statusCode»:409,»body»:{«status»:»failure»,»message»:»********»,»code»********,»data»:null,»error»:{«message»:»None»}},»headers»:{«server»:»nginx»,»date»:»Sun, 10 Марта 2019 16:08:31 GMT»,»content-type»:»application/json»,»content-length»:»112″,»connection»:»close»,»*****-version»:»*****»,»x-content-type-options»:»*****»,»x-frame-options»:»DENY»,»*****-generated-by»:»********»},»request»:{«uri»:{«protocol»:»http:»,»slashes»:true,»auth»:null,»host»:»*****»,»port»:»*****»,»hostname»:»localhost»,»hash»:null,»search»:null,»query»:null,»pathname********»,»path»:»/v3/users/settings/»,»href»:»********»},»method»:»POST»,»headers»:{«Authorization»:»********»,»Cookie*********»,»User-Agent»:»Mozilla/ 5.0 (Windows NT 6.3; Win64; x64) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome /********* Safari/537.36″,»Accept-Language»:»en-US»,»Original-Accept-Language»:»en-US,en;q=0.9″,»X-*****-InstallId»:»********»,»X-*****-AppState»:»active»,»X-*****-Parent-Rid»:»********»,»X-*****-Root-Rid»:»*************»,»X-*****-Rid»:»*****»,»X-Pixel-Ratio»:1,»X-*****-App-Type»:5,»X-Prefer-User-Locale»:»1″,»X-Real-Ip»:»*****»,»X-*****-Real-Ip»:»********»,»X-********-Csrf»:»********»,»X-*****-Browser-Extension-Installed»:»false»,»X-********-Referrer»:»*************»,»X-Bot»:»false»,»X-Referrer»:»********»,»X-Url»:»********»,»content-type»:»application/x-www-form-urlencoded»,»accept»:»application/json»,»content-length»:179}}}}

Ответ №1:

Вот что я узнал из этого ответа сервера. Первое, что я заметил, это то, что ваш протокол использует http.

«протокол»:»http:»

HTTP — это открытый текст и незашифрованная форма связи. Это важно отметить, потому что, если кто-то прослушивает ваш трафик, он сможет прочитать передачу, как вы разместили ее здесь (без блокировки конфиденциальных данных *****).

Следующее, что я заметил, это ваш токен авторизации.

«Авторизация»: «Предъявитель *********=»

Учитывая, что сообщение в виде открытого текста, злоумышленник сможет украсть ваш токен. Используя этот токен, злоумышленник может взаимодействовать с сервером как авторизованный пользователь, получая доступ к частной информации (и, возможно, возможность изменять).

С другой стороны, поскольку мы предполагаем, что злоумышленник прослушал ваш незашифрованный трафик. Они также могут отслеживать информацию о компьютере / браузере вашего клиента:

«User-Agent»: «Mozilla / 5.0 (Windows NT 6.3; Win64; x64) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / ******* Safari / 537.36»

Из этой информации злоумышленник может узнать, что клиент использует Windows 8.1 и какие браузеры / версии установлены на компьютере клиента. С помощью этих системных спецификаций злоумышленник может запустить целевую атаку на компьютер клиента (особенно, если у вас устаревшая / небезопасная версия операционной системы или браузера).

Итак, отвечая на ваш вопрос, да, уязвимости безопасности существуют как для клиента, так и для сервера.

Однако простое переключение с HTTP на HTTPS имело бы большое значение для ограничения вашего воздействия.

Комментарии:

1. Великолепно, но что из этого представляет угрозу для сервера? Извините, я все еще новичок в этом. Я вижу способы изменения моей личности и все такое, но о svr нечего сказать.

2. @kushshah Если злоумышленник получит ваш токен, он сможет выдавать себя за клиента. Это означает, что злоумышленник может выполнять те же вызовы сервера, что и клиент; эти вызовы могут быть вредоносными или запрашивать конфиденциальные данные. Таким образом, сервер скомпрометирован.