From a4f85d4084e926520be224cc864cab7af81d49ca Mon Sep 17 00:00:00 2001 From: scruz <101042936+imscruz@users.noreply.github.com> Date: Wed, 2 Jul 2025 16:38:38 +0300 Subject: [PATCH 1/4] Create linkperisi.js --- src/bypasses/linkperisi.js | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/bypasses/linkperisi.js diff --git a/src/bypasses/linkperisi.js b/src/bypasses/linkperisi.js new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/src/bypasses/linkperisi.js @@ -0,0 +1 @@ + From 47226f01edd2b834a78598562c5d569ef52d1cd8 Mon Sep 17 00:00:00 2001 From: scruz <101042936+imscruz@users.noreply.github.com> Date: Wed, 2 Jul 2025 17:17:18 +0300 Subject: [PATCH 2/4] Update linkperisi.js Bypass 1 --- src/bypasses/linkperisi.js | 70 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/src/bypasses/linkperisi.js b/src/bypasses/linkperisi.js index 8b1378917..88ea01649 100644 --- a/src/bypasses/linkperisi.js +++ b/src/bypasses/linkperisi.js @@ -1 +1,71 @@ +(async () => { + // Doğrulama başlat butonunu bul + const btn = Array.from(document.querySelectorAll('a.btn-primary')) + .find(el => el.textContent.includes("Doğrulamayı Başlat")); + if (!btn) { + console.log("Doğrulamayı Başlat butonu bulunamadı."); + return; + } + // URL’den domain çıkarma fonksiyonu + function extractDomainFromUrl(urlStr) { + try { + const url = new URL(urlStr); + const q = url.searchParams.get('q'); + if (!q) return null; + + let parts = q.replace(/(\+|%20|%%)/g, ' ').split(/\s+/).map(w => w.replace(/^site:/i, '')); + + for (const part of parts) { + const dParts = part.split('.'); + if (dParts.length >= 2) { + return dParts.slice(-2).join('.'); + } + } + return null; + } catch { + return null; + } + } + + const domain = extractDomainFromUrl(btn.href); + if (!domain) { + console.log("Domain bulunamadı."); + return; + } + + console.log("Bulunan domain:", domain); + + // Fetch atma fonksiyonu (hedef domain içinde, content script ortamında çalışıyor) + async function doFetch(domain) { + try { + const res = await fetch(`https://${domain}/Backend/Process.php?type=Add`, { + method: 'POST', + headers: { + "accept": "application/json, text/javascript, */*; q=0.01", + "accept-language": "tr,en;q=0.9,en-GB;q=0.8,en-US;q=0.7", + "priority": "u=1, i", + "sec-ch-ua": "\"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"138\", \"Microsoft Edge\";v=\"138\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Windows\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-origin", + "x-requested-with": "XMLHttpRequest" + }, + referrer: `https://${domain}/`, + body: null, + credentials: "include" + }); + const text = await res.text(); + console.log(`Fetch başarıyla yapıldı: ${domain}`, text); + } catch (e) { + console.error(`Fetch hatası (${domain}):`, e); + } + } + + // Domain ve www.domain için 4 saniye arayla fetch at + await doFetch(domain); + setTimeout(() => doFetch(`www.${domain}`), 31); + +})(); From c1a20c7900b5d5dee8a636075be5eae91eb7b52a Mon Sep 17 00:00:00 2001 From: scruz <101042936+imscruz@users.noreply.github.com> Date: Wed, 2 Jul 2025 17:18:25 +0300 Subject: [PATCH 3/4] Update linkperisi.js bypassdeff --- src/bypasses/linkperisi.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bypasses/linkperisi.js b/src/bypasses/linkperisi.js index 88ea01649..fb7b59f9d 100644 --- a/src/bypasses/linkperisi.js +++ b/src/bypasses/linkperisi.js @@ -1,3 +1,5 @@ +import BypassDefinition from './BypassDefinition.js' + (async () => { // Doğrulama başlat butonunu bul const btn = Array.from(document.querySelectorAll('a.btn-primary')) From 28925825908b670dadc10b3641b107b0104a9f3f Mon Sep 17 00:00:00 2001 From: scruz <101042936+imscruz@users.noreply.github.com> Date: Wed, 2 Jul 2025 17:31:50 +0300 Subject: [PATCH 4/4] Update linkperisi.js removing turkish console logs and adding english # balbla --- src/bypasses/linkperisi.js | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/bypasses/linkperisi.js b/src/bypasses/linkperisi.js index fb7b59f9d..f162f9767 100644 --- a/src/bypasses/linkperisi.js +++ b/src/bypasses/linkperisi.js @@ -1,15 +1,14 @@ import BypassDefinition from './BypassDefinition.js' (async () => { - // Doğrulama başlat butonunu bul + // Find "DOGRULAMAYI BASLAT" button const btn = Array.from(document.querySelectorAll('a.btn-primary')) .find(el => el.textContent.includes("Doğrulamayı Başlat")); if (!btn) { - console.log("Doğrulamayı Başlat butonu bulunamadı."); return; } - // URL’den domain çıkarma fonksiyonu + // From the URL get domain only function extractDomainFromUrl(urlStr) { try { const url = new URL(urlStr); @@ -32,13 +31,12 @@ import BypassDefinition from './BypassDefinition.js' const domain = extractDomainFromUrl(btn.href); if (!domain) { - console.log("Domain bulunamadı."); return; } - console.log("Bulunan domain:", domain); + console.log("Found:", domain); - // Fetch atma fonksiyonu (hedef domain içinde, content script ortamında çalışıyor) + // Sending Fetch on content mode cuz we dont want CORS async function doFetch(domain) { try { const res = await fetch(`https://${domain}/Backend/Process.php?type=Add`, { @@ -60,13 +58,12 @@ import BypassDefinition from './BypassDefinition.js' credentials: "include" }); const text = await res.text(); - console.log(`Fetch başarıyla yapıldı: ${domain}`, text); } catch (e) { - console.error(`Fetch hatası (${domain}):`, e); + console.error(`Fetch err (${domain}):`, e); } } - // Domain ve www.domain için 4 saniye arayla fetch at + // with WWW version await doFetch(domain); setTimeout(() => doFetch(`www.${domain}`), 31);