Независимый исследователь Евгений Фарфель (Eugene Farfel, aesteral) обнаружил на популярном хостинге картинок Imgur критическую уязвимость. Проблема заключалась в сервисе Video to GIF, который позволяет быстро сделать гифку из любого, расположенного на внешнем сервере, видеоролика.
Уязвимость SSRF (Server-Side Request Forgery) обнаружилась по адресу imgur.com/vidgif. Сервис очень пост: пользователю достаточно ввести URL любого видеоролика, и Imgur автоматически парсит страницу, разбираясь, если на ней видео, а затем позволяет нарезать из найденного контента .gif.
Исследователь выяснил, что хостинг использует cURL-запросы и библиотеку libcurl для получения контента с заданной страницы. Однако во время парсинга URL Imgur концентрируется не только на протоколах HTTP и HTTPS, принимая такие ссылки, в поисках контента он также может работать с протоколами SSH, POP3, IMAP, SMTP, FTP, SFTP, TFTP, DICT и GOPHER.
Фарфель запустил собственный proof-of-concept веб-сервер, подняв на нем Netcat. Заставив Imgur установить с подсадным сервером соединение по SFTP, исследователь выявил, какое ПО используется на серверах хостинга изображений. Это позволило понять, какие версии библиотек libcurl и libssh2 применяет Imgur, и к каким уязвимостям они восприимчивы. В теории, дальше исследователь мог осуществить полноценную атаку на инфраструктуру хостинга, особенно если администраторы Imgur часто забывают обновлять ПО.
Также Фарфель заметил, что Imgur все-таки использует фильтры URL, принимая от пользователя не все ссылки подряд. Впрочем, эти фильтры оказалось не так сложно обойти: исследователю было достаточно создать редирект на собственном сервере и скормить его сервису Video to GIF. URL, который не должен был приниматься в принципе, благополучно сработал. Используя свой proof-of-concept, исследователь применил вредоносную GOPHER-ссылку, чтобы начать TELNET-сессию. Подобная тактика давала возможность пообщаться с другими протоколами, в том числе с SMTP. То есть серверы Imgur вполне могли использоваться для рассылки спама.
Кроме того, Фарфель обнаружил, что на серверах Imgur установлен неоправданно долгий таймаут, в течение которого сервер пытается установить соединение с FTP-ссылкой. При должном усердии этот нюанс можно было использовать для реализации DoS-атак: указав сервису Video to GIF достаточное количество ссылок на закрытые для FTP порты, можно было занять бесполезным ожиданием все свободные слоты соединений, что привело бы к прекращению работы сервиса.
Сообщается, что SSRF-уязвимость была найдена еще в феврале 2016 года, и разработчики Imgur устранили проблему менее чем за день. Так как у хостинга картинок есть собственная программа bug bounty, исследователь заработал на данном баге $2000.
Фото: bigno/Imgur