Веб-приложения все больше становятся похожими на обычные приложения. Разделение логики и ресурсов , использование сторонних библиотек. И эксплуатация становится похожа — кроме того, что найти саму багу, надо еще обойти ту или иную защиту.
По сути-то, ничего удивительного, что и в самих библиотеках находятся какие-то уязвимости. И если к серверному ПО у нас часто нет доступа , то с фронтендом — с JavaScript’ oм — нам все доступно: и версию библиотеки можно узнать, и, соответственно, баги, которые в ней есть. Конечно, бага в либе еще не означает багу в самом приложении, ведь часто нужно и чтобы приложение использовало уязвимый функционал, и чтобы мы могли «воздействовать» на него. Фактически большая часть уязвимостей повязана с возможностью подпихнуть XSS ‘ кy. Вот при мер такой уязвимой либы: goo.gl/vyEVAr.
[ad name=»Responbl»]
И поможет нам с этой задачей тулза Retire.js ( goo.gl/qzбFZn) . У нее есть база распространенных либ и уязвимостей в них . Определение версии происходит по данным из самих либ и их отпечатку. Имеются различные виды ее реализации: отдельная тулза, модуль к хрому или ФФ, а теперь вот добавились модули для Burp’a и ZAP’a. Не rocket science, но помогает.