Google API PHP Client - это серверная библиотека, разработанная в Google Inc., позволяющая работать с такими приложениями как Google+, Drive или YouTube. Библиотека написана на языке PHP.
Две уязвимости типа XSS (Cross-Site Scripting) были обнаружены в файле "url-shortener.php". Обе уязвимости позволяют исполнять вредонсный JavaScript код на стороне клиента. Хоть и уязвимости относятся к классу пассивных XSS, они имеют огромную потенциальную опасность в связи с популярным и хорошо зарекомендовавшим себя брендом "Google". Ничего не подозревающий пользователь с огромной вероятностью перейдёт по заражённой ссылке.
Уязвимая функция $_SERVER['PHP_SELF']:
1) Первая уязвимость находится в форме, принимающей GET-параметр из URL'а:
<form id="url" method="GET" action="<?= $_SERVER['PHP_SELF'] ?>">
Достаточно послать серверу вредоносный код в URL параметре, при этом закодировав специальные символы (HTMLEncode) для обхода встроенной фильтрации. В последующем, эта ссылка отправляется жертве для дальнейшей компрометации.
http://vulnerablesite.com/google-api-php-client/examples/urlshortener.php/%22%3E%3Cscript%3Ealert('xss')%3C/script%3E%3Cdc
2) Следующая уязвимость находится в том же файле, но несколькими строками ниже:
<a href="<?= $_SERVER['PHP_SELF'] ?>">Create another</a>
Пример эксплуатации:
Так же прост как и в первом случае. Кодируем спецсимволы и передаём код в параметре URL'a.
http://vulnerablesite.com/google-api-php-client/examples/urlshortener.php/%22%3E%3C/script%3E%3Cscript%3Ealert(42)%3C/script%3E?url=http%3A%2F%2Fwww.defensecode.com
Использование Web Application Firewall позволяет блокировать подобные атаки.