Хакер нашел способ читать файлы на серверах Facebook
Bug Bounty программы приносят плоды различным фирмам, в том числе и крупнейшим. Чаще всего, хакеры находят достаточно простые в эксплуатации уязвимости вроде XSS и CSRF, но бывают и интересные, которые встречаются достаточно редко. Одним из таковых, является недавний пример чтения файлов на серверах Facebook, найденный Йосипом Франковичем (Josip Franjković).
Слабым местом фейсбука оказалась форма загрузки файлов, расположенная на странице загрузки резюме. Попытавшись загрузить файлы с потенциально опасными расширениями вроде .php, а также файлы с именами наподобие »/etc/passwd» и «file:///etc/passwd», Йосип, получал лишь путь к этим файлам, а также их содержимое, после преобразования в Base64.
Продолжая загружать различные файлы, он заметил, что загруженный архив с расширением .zip распаковывается и в ответ выдается все тот же контент в Base64 и путь к распакованным файлам. После этого, Йосип создал на своем компьютере симлинк на файл »/etc/passwd» (ln -s /etc/passwd link), упаковал его в ZIP (zip --symlinks test.zip link) и попробовал загрузить на сервер в качестве резюме. В ответе от сервера было содержимое файла »/etc/passwd», находящегося на сервере Facebook. Таким способом, он мог прочитать любой файл на сервере.
Содержимое файла »/etc/passwd» на сервере
На устранение уязвимости, фейсбуку потребовалось менее 12 часов. Вознаграждением для Франковича, по программе поощрения «белых» хакеров, стала выплата в размере $5500.