Local file-path manipulation

Что такое манипуляции локальным путём к файлу на основе DOM?

Уязвимости манипуляции локальным путём к файлу возникают, когда скрипт передаёт контролируемые атакующим данные в API работы с файлами в качестве параметра filename. Злоумышленник может использовать эту уязвимость, чтобы сконструировать URL, который при посещении заставит браузер пользователя открыть произвольный локальный файл.

Каковы последствия манипуляций локальным путём к файлу?

Потенциальное воздействие этой уязвимости зависит от того, как веб‑сайт использует открытый файл:

  • Если сайт считывает данные из файла, атакующий может получить эти данные.

  • Если сайт записывает определённые данные в чувствительный файл, атакующий также может записать свои собственные данные в файл, например в файл конфигурации операционной системы.

В обоих случаях фактическая эксплуатируемость потенциальной уязвимости может зависеть от наличия на сайте другой подходящей функциональности.

Какие приёмники могут привести к уязвимостям манипуляции локальным путём к файлу?

Ниже приведены некоторые из основных приёмников, которые могут приводить к уязвимостям манипуляции локальным путём к файлу на основе DOM:

FileReader.readAsArrayBuffer()
FileReader.readAsBinaryString()
FileReader.readAsDataURL()
FileReader.readAsText()
FileReader.readAsFile()
FileReader.root.getFile()

Как предотвратить уязвимости манипуляции локальным путём к файлу

В дополнение к общим мерам, описанным на странице DOM-based, следует избегать предоставления данным из каких‑либо ненадежных источников возможности динамически передавать имя файла в API работы с файлами.

Last updated