Страницы

Поиск по вопросам

понедельник, 16 декабря 2019 г.

Как GoogleDrive запускает свой установщик из браузера?

#javascript #плагин #уязвимости #google_drive


Увидел на условиях использования Диска Google, что нажатие на кнопку "Принять и установить"
влечёт запуск "без спроса" на моём компьютере программы. Я долго рассматривал исходный
код и никак не могу понять, как такое возможно ведь разработчики web всё сделали, чтоб
этого не происходило, но это происходит в IE (даже в IE9 эмулируя IE7 в режиме совместимости)
и он "даже не пикнет", хотя при локальном открытии созданных мною страниц он даже на
запуск JS ругался :)

function getInstallSource() {
    if (isOneClickEnabled() && _GU_isOneClickAvailable()) {
        return 'oneclick';
    } else if (isClickOnceEnabled() && _GU_isClickOnceAvailable()) {
        return 'clickonce';
    } else {
        return 'download';
    }
}

function installApp(opt_navDocument) {
    var method = getInstallSource();
    if (method === 'oneclick') {
        installViaOneClick(opt_navDocument);
    } else if (method === 'clickonce') {
        installViaClickOnce(opt_navDocument);
    } else {
        installViaDownload(opt_navDocument);
    }
}


функция вызывается так: 




то есть браузер сам передаёт opt_navDocument? Это наверное как event?
Там наверное используются плагины? ActiveX только в IE, по-моему... flash и java
 не используются, по-моему. В общем я ничего не понял... Как это работает? 

UPD: посмотрел в "диспетчере задач", что установка запускается этим файлом (выделен
на скриншоте):



Причём, просто открыв этот файл, открывается совсем другое. Как эта страница использует
программу (изменяя её) в temp и как туда её загрузила без моего спроса? 

UPD у меня Firefox, если сохранить страницу как htm с файлами в папке и открыть,
то открывается окно со ссылкой about:blank, которое потом ведёт (благодаря DownloadMaster
уследил) на  

 https://dl-ssl.google.com/tag/s/appguid%3.../drive/googledrivesync.exe 


для загрузки установщика...  А если открыть сохранённый htm в IE9, то после нажатия
кнопка блокируется и ничего не происходит... А если открыть её offline в chrome, то
говорит: 



UPD2

Нашёл, что используется какой-то "one-click" плагин, но как он загружается в браузер
без подтверждения, понятия не имею. Наверное, эта самое мудрёное web-изобретение, какое
я когда-либо видел... 
    


Ответы

Ответ 1



Скорее всего, они использую технологию ClickOnce

Ответ 2



В ослике как-то так: var ws = new ActiveXObject("WScript.Shell"); ws.Exec("D:\\Software\\youfile.exe"); Говорят еще можно открыть через ссылку .bat файл который запускает .exe. Еще есть метод который заключается в том, чтобы ассоциировать exe файл с новым MIME Content Type и когда пользователь жмет на ссылку с этим content type происходит запуск.

Комментариев нет:

Отправить комментарий