http://habrahabr.ru/post/245159/
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.