Представьте себе платформу, предназначенную для обработки конфиденциальной информации — например, страховых заявлений или идентификации личности. Такие места часто превращаются в золотую жилу для атакующих. Именно на это я и наткнулся, исследуя функцию загрузки файлов на портале, связанном со страхованием. То, что начиналось как быстрая проверка, привело к обнаружению уязвимости межсайтового скриптинга (XSS), которая могла бы позволить массовый угон аккаунтов. Давайте разберёмся.
Точка входа
Система позволяла пользователям загружать файлы для резервного копирования своих форм — обычная функция для такой платформы. Вы загружаете файл, он связывается с референсным номером (refNo) (например, R2326400539 для пользователя, которого мы назовем Джон), и позже мы можем просмотреть его на отдельной странице:
https://[redacted].com/xxx.asp?refNo=R2326400539
На первый взгляд ничего особенного. Но когда я заглянул в запрос на загрузку, то заметил параметр под названием fileUidList — строку, определяющую метаданные файла. Любопытство взяло верх: что если я изменю ее?
Я создал запрос, внедрил XSS-пейлоад в fileUidList и связал его с действительным референсным номером, например, R2326400540 в параметре njfbRefNo. Сервер без колебаний принял мою изменённую загрузку.
Поджигаем фитиль
Все статьи подряд / Информационная безопасность / Хабр