Showing source for: https://rutor24.vip
Redirects (1): https://skyiwredshjnhjgeleladu7m7mgpuxgsnfxzhncwtvmhr7l5bniutayd-onion.com/(302) ⟶ https://rutor24.vip
Duration: 0.076731s
Server: cloudflare
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="/favicon.ico">
<title>Рутор Форум</title>
<style>
* { box-sizing: border-box; }
html, body {
margin: 0;
width: 100%;
height: 100%;
font-family: Arial, Helvetica, sans-serif;
background: hsl(204.9, 80.4%, 30%);
}
body {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 22px;
}
.page-title { margin: 0; text-align: center; }
.auth-card {
width: 360px;
background: white;
border-radius: 11px;
padding: 21px 20px 20px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}
.auth-title {
margin: 0 0 15px;
text-align: center;
font-size: 18px;
font-weight: 400;
}
.cap-stage {
position: relative;
width: 320px;
height: 160px;
margin: 0 auto;
border: 1px solid #3a3a3a;
border-radius: 10px;
overflow: hidden;
background: #ddd;
user-select: none;
}
.cap-stage img { position: absolute; display: block; pointer-events: none; -webkit-user-drag: none; }
#capBg { left: 0; top: 0; width: 320px; height: 160px; }
#capPiece { left: 0; top: 0; width: 48px; height: 40px; filter: drop-shadow(0 0 3px rgba(0,0,0,.6)); }
.cap-refresh {
position: absolute; right: 6px; top: 6px;
width: 26px; height: 26px; border: none; border-radius: 50%;
background: rgba(255,255,255,.85); cursor: pointer; font-size: 15px; line-height: 26px; padding: 0;
}
.cap-track {
position: relative;
width: 320px;
height: 48px;
margin: 12px auto 0;
border: 1px solid #3a3a3a;
border-radius: 12px;
background: #f2f2f2;
overflow: hidden;
}
.cap-fill { position: absolute; left: 0; top: 0; height: 100%; width: 0; background: hsla(204.9, 80.4%, 30%, .25); }
.cap-hint {
width: 320px; margin: 14px auto 0; min-height: 18px;
text-align: center; font-size: 13px; color: #444;
}
.cap-handle {
position: absolute; left: 0; top: 0;
width: 48px; height: 100%;
border-radius: 11px;
background: hsl(204.9, 80.4%, 30%);
color: #fff; font-size: 20px;
display: flex; align-items: center; justify-content: center;
cursor: grab; touch-action: none;
}
.cap-handle:active { cursor: grabbing; }
.cap-track.ok .cap-handle { background: #2e9e4f; cursor: default; }
.cap-track.fail .cap-handle { background: #c0392b; }
.login-button {
display: block;
width: 320px;
height: 37px;
margin: 14px auto 0;
border: none;
border-radius: 12px;
background: hsl(204.9, 80.4%, 30%);
color: #f0f0f0;
font-size: 14px;
cursor: pointer;
}
.login-button:disabled { opacity: .45; cursor: not-allowed; }
.login-button:not(:disabled):active { transform: translateY(1px); }
</style>
<meta name="description" content="Rutor Главный Форум Чёрного рынка"><link rel="canonical" href="https://"><meta property="og:type" content="website"><meta property="og:title" content="Форум Даркнет ?"><meta property="og:description" content="Переходник даркнет агрегатор "><meta name="robots" content="index,follow"><meta name="googlebot" content="index,follow"><meta name="google" content="notranslate"><meta name="yandex" content="index,follow"></head>
<body>
<h1 class="page-title"><a href="/"><img src="/data/assets/logo_default/logo.svg" style="width: 320px;"></a></h1>
<div class="auth-card">
<h2 class="auth-title">Подтвердите, что вы не робот</h2>
<form action="/start_check.php" method="post" id="capForm">
<div class="cap-stage">
<img id="capBg" alt="">
<img id="capPiece" alt="">
<button type="button" class="cap-refresh" id="capRefresh" title="Обновить">↻</button>
</div>
<div class="cap-track" id="capTrack">
<div class="cap-fill" id="capFill"></div>
<div class="cap-handle" id="capHandle">➜</div>
</div>
<div class="cap-hint" id="capHint">Сдвиньте, чтобы собрать пазл</div>
<input type="hidden" name="captcha" id="capToken">
<button type="submit" class="login-button" id="capSubmit" disabled>Войти</button>
</form>
</div>
<script>
(() => {
const W = 320, PW = 48;
const $ = id => document.getElementById(id);
const bg = $('capBg'), piece = $('capPiece'), handle = $('capHandle'), fill = $('capFill'),
track = $('capTrack'), hint = $('capHint'), token = $('capToken'), submit = $('capSubmit');
let pos = 0, drag = false, startX = 0, t0 = 0, trail = [], locked = false, loading = false;
function setPos(p) {
pos = p;
handle.style.left = p + 'px';
piece.style.left = p + 'px';
fill.style.width = (p + PW / 2) + 'px';
}
async function load() {
if (loading) return;
loading = true; locked = true;
track.className = 'cap-track';
hint.textContent = 'Загрузка...';
token.value = ''; submit.disabled = true;
setPos(0);
try {
const r = await (await fetch('/captcha.php?action=new', { cache: 'no-store' })).json();
const q = '&t=' + Date.now();
bg.src = '/captcha.php?img=bg' + q;
piece.src = '/captcha.php?img=piece' + q;
piece.style.top = r.y + 'px';
hint.textContent = 'Сдвиньте, чтобы собрать пазл';
locked = false;
} catch (e) {
hint.textContent = 'Ошибка загрузки, нажмите ↻';
}
loading = false;
}
async function verify() {
locked = true;
try {
const r = await (await fetch('/captcha.php?action=verify', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ x: pos, trail })
})).json();
if (r.ok) {
token.value = r.token;
track.classList.add('ok');
hint.textContent = '✓ Проверка пройдена';
submit.disabled = false;
return;
}
} catch (e) {}
track.classList.add('fail');
hint.textContent = 'Неверно, попробуйте ещё раз';
setTimeout(load, 800);
}
handle.addEventListener('pointerdown', e => {
if (locked) return;
drag = true;
startX = e.clientX - pos;
t0 = performance.now();
trail = [[0, 0]];
hint.textContent = '';
handle.setPointerCapture(e.pointerId);
});
handle.addEventListener('pointermove', e => {
if (!drag) return;
const p = Math.max(0, Math.min(W - PW, e.clientX - startX));
setPos(p);
if (trail.length < 1500) trail.push([Math.round(p * 10) / 10, Math.round(performance.now() - t0)]);
});
const end = () => {
if (!drag) return;
drag = false;
if (pos < 5) { setPos(0); hint.textContent = 'Сдвиньте, чтобы собрать пазл'; return; }
verify();
};
handle.addEventListener('pointerup', end);
handle.addEventListener('pointercancel', end);
$('capRefresh').addEventListener('click', () => { if (!drag) load(); });
$('capForm').addEventListener('submit', e => { if (!token.value) e.preventDefault(); });
load();
})();
</script>
<script>
(function() {
var META = {"title":"\u0420\u0443\u0442\u043e\u0440 \u0424\u043e\u0440\u0443\u043c","metas":[{"attr":"name","key":"description","content":"Rutor \u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u0424\u043e\u0440\u0443\u043c \u0427\u0451\u0440\u043d\u043e\u0433\u043e \u0440\u044b\u043d\u043a\u0430"},{"attr":"property","key":"og:type","content":"website"},{"attr":"property","key":"og:title","content":"\u0424\u043e\u0440\u0443\u043c \u0414\u0430\u0440\u043a\u043d\u0435\u0442 ?"},{"attr":"property","key":"og:description","content":"\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a \u0434\u0430\u0440\u043a\u043d\u0435\u0442 \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440 "},{"attr":"name","key":"robots","content":"index,follow"},{"attr":"name","key":"googlebot","content":"index,follow"},{"attr":"name","key":"google","content":"notranslate"},{"attr":"name","key":"yandex","content":"index,follow"}]};
function setMeta(attr, key, content) {
var el = document.querySelector('meta[' + attr + '="' + key + '"]');
if (!el) {
el = document.createElement('meta');
el.setAttribute(attr, key);
document.head.appendChild(el);
}
if (el.getAttribute('content') !== content) el.setAttribute('content', content);
}
function apply() {
if (META.title && document.title !== META.title) document.title = META.title;
META.metas.forEach(function(m) { setMeta(m.attr, m.key, m.content); });
}
apply(); // runs after everything above this script tag, incl. React
var titleEl = document.querySelector('title');
var observer = new MutationObserver(apply);
if (titleEl) observer.observe(titleEl, { childList: true });
observer.observe(document.head, {
childList: true, subtree: true, attributes: true, attributeFilter: ['content']
});
})();
</script>
</body>
</html>
| # |
Url |
Url |
Source |
Date |
| 1 |
https://rutor24.vip |
|
2026-10-21 08:03:18 |
| 2 |
https://auth.mediacorp.sg/u/login?… |
|
2026-10-21 08:03:18 |
| 3 |
https://www.texarkanatwins.com/%25… |
|
2026-10-21 08:03:18 |
| 4 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-21 08:03:18 |
| 5 |
https://door-replacement-service18… |
|
2026-10-21 08:03:17 |
| 6 |
https://www.texarkanatwins.com/%25… |
|
2026-10-21 08:03:16 |
| 7 |
https://frydge-uk10031.azzablog.co… |
|
2026-10-21 08:03:16 |
| 8 |
https://drugandalcoholismtreatment… |
|
2026-10-21 08:03:14 |
| 9 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-21 08:03:14 |
| 10 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-21 08:03:14 |
| 11 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-21 08:03:12 |
| 12 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-21 08:03:12 |
| 13 |
https://consent.youtube.com/ml?con… |
|
2026-10-21 08:03:12 |
| 14 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-21 08:03:11 |
| 15 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-21 08:03:10 |
| 16 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-21 08:03:10 |
| 17 |
https://www.texarkanatwins.com/%25… |
|
2026-10-21 08:03:09 |
| 18 |
https://je-sf-tall-marketing-696.b… |
|
2026-10-21 08:03:09 |
| 19 |
https://www.ub.uni-heidelberg.de/en |
|
2026-10-21 08:03:09 |
| 20 |
https://auth.acog.org/OAuth/SignIn… |
|
2026-10-21 08:03:09 |