142 lines
12 KiB
HTML
Executable File
142 lines
12 KiB
HTML
Executable File
<!DOCTYPE html><html lang="fr"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>WEVADS • Captcha Solver</title>
|
|
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet">
|
|
<style>
|
|
:root{--bg:#060a14;--s:#0c1220;--s2:#111827;--b:#1e293b;--t:#e2e8f0;--d:#64748b;--cy:#22d3ee;--gn:#34d399;--am:#fbbf24;--rd:#f87171;--pu:#a78bfa;--bl:#60a5fa;--pk:#f472b6}
|
|
*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--t);font-family:'DM Sans',sans-serif;font-size:11px}
|
|
.hdr{background:var(--s);border-bottom:1px solid var(--b);padding:12px 20px;display:flex;align-items:center;justify-content:space-between}.hdr h1{font-size:16px;font-weight:700}.hdr h1 span{color:var(--bl)}
|
|
.wrap{padding:16px;max-width:1400px;margin:0 auto}
|
|
.stats{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:16px}
|
|
.sc{background:var(--s);border:1px solid var(--b);border-radius:10px;padding:14px;text-align:center}.sc .n{font-family:'JetBrains Mono',monospace;font-size:22px;font-weight:700}.sc .l{font-size:9px;text-transform:uppercase;color:var(--d);margin-top:4px}
|
|
.tabs{display:flex;gap:2px;margin-bottom:16px;border-bottom:1px solid var(--b)}.tab{padding:8px 16px;cursor:pointer;font-size:10px;font-weight:600;text-transform:uppercase;color:var(--d);border-bottom:2px solid transparent}.tab:hover{color:var(--t)}.tab.active{color:var(--bl);border-color:var(--bl)}
|
|
.panel{display:none;background:var(--s);border:1px solid var(--b);border-radius:10px;padding:16px}.panel.active{display:block}
|
|
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
|
|
.provider{background:var(--s2);border:1px solid var(--b);border-radius:8px;padding:14px;transition:.2s}.provider:hover{border-color:var(--bl)}
|
|
.provider-name{font-weight:700;font-size:13px;margin-bottom:4px}.provider-desc{font-size:9px;color:var(--d)}
|
|
.provider-stats{display:flex;gap:12px;margin-top:8px;font-size:10px}
|
|
.pv{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:14px}.pk{font-size:8px;color:var(--d);text-transform:uppercase}
|
|
.form-row{margin-bottom:10px}.form-row label{display:block;font-size:9px;text-transform:uppercase;color:var(--d);margin-bottom:4px}
|
|
.form-row input,.form-row select{width:100%;background:var(--s2);border:1px solid var(--b);color:var(--t);padding:8px;border-radius:6px;font-size:11px}
|
|
.btn{padding:8px 16px;border-radius:6px;border:1px solid var(--b);background:var(--s2);color:var(--t);cursor:pointer;font-size:10px;font-weight:600}.btn:hover{border-color:var(--bl)}
|
|
.btn-bl{background:rgba(96,165,250,.15);border-color:var(--bl);color:var(--bl)}
|
|
.badge{font-size:8px;padding:2px 6px;border-radius:3px;font-weight:600}
|
|
.badge-gn{background:rgba(52,211,153,.15);color:var(--gn)}.badge-am{background:rgba(251,191,36,.15);color:var(--am)}.badge-rd{background:rgba(248,113,113,.15);color:var(--rd)}
|
|
table{width:100%;border-collapse:collapse;font-size:10px}th{text-align:left;color:var(--d);text-transform:uppercase;font-size:9px;padding:6px 8px;border-bottom:1px solid var(--b)}td{padding:6px 8px;border-bottom:1px solid rgba(30,41,59,.3)}
|
|
.metric-bar{height:6px;background:var(--s2);border-radius:3px;margin-top:4px}.metric-fill{height:100%;border-radius:3px}
|
|
@media(max-width:900px){.stats{grid-template-columns:repeat(3,1fr)}.grid2,.grid3{grid-template-columns:1fr}}
|
|
</style><style>.light{--bg:#f0f2f5;--s:#ffffff;--s2:#f8fafc;--b:#e2e8f0;--t:#1e293b;--d:#64748b}.light input,.light select,.light textarea{background:#f8fafc;border-color:#e2e8f0;color:#1e293b}</style>
|
|
|
|
</head><body>
|
|
<div class="hdr"><div><h1>🧩 WEVADS • <span id="clock"></span></div></div>
|
|
<div class="wrap">
|
|
<div class="stats">
|
|
<div class="sc"><div class="n" style="color:var(--bl)">12,847</div><div class="l">Résolus 24h</div></div>
|
|
<div class="sc"><div class="n" style="color:var(--gn)">94.2%</div><div class="l">Taux succès</div></div>
|
|
<div class="sc"><div class="n" style="color:var(--cy)">2.3s</div><div class="l">Temps moyen</div></div>
|
|
<div class="sc"><div class="n" style="color:var(--am)">€18.40</div><div class="l">Coût 24h</div></div>
|
|
<div class="sc"><div class="n" style="color:var(--pu)">3</div><div class="l">Providers actifs</div></div>
|
|
<div class="sc"><div class="n" style="color:var(--pk)">€0.0014</div><div class="l">Coût/captcha</div></div>
|
|
</div>
|
|
<div class="tabs">
|
|
<div class="tab active" onclick="showTab('providers')">Providers</div>
|
|
<div class="tab" onclick="showTab('test')">Tester</div>
|
|
<div class="tab" onclick="showTab('usage')">Usage</div>
|
|
<div class="tab" onclick="showTab('config')">Configuration</div>
|
|
</div>
|
|
<div class="panel active" id="tab-providers">
|
|
<div class="grid3">
|
|
<div class="provider"><div style="display:flex;justify-content:space-between"><div class="provider-name">🔵 2Captcha</div><span class="badge badge-gn">PRIMARY</span></div><div class="provider-desc">API key: ****d8f2 • Balance: $42.80</div><div class="provider-stats"><div><div class="pv" style="color:var(--gn)">96.1%</div><div class="pk">Succès</div></div><div><div class="pv" style="color:var(--cy)">1.8s</div><div class="pk">Temps</div></div><div><div class="pv" style="color:var(--am)">$0.003</div><div class="pk">Prix</div></div></div>
|
|
<div style="margin-top:8px;font-size:9px;color:var(--d)">Types: reCAPTCHA v2/v3, hCaptcha, image, text</div></div>
|
|
<div class="provider"><div style="display:flex;justify-content:space-between"><div class="provider-name">🟢 Anti-Captcha</div><span class="badge badge-am">BACKUP</span></div><div class="provider-desc">API key: ****a4e1 • Balance: $28.50</div><div class="provider-stats"><div><div class="pv" style="color:var(--gn)">93.4%</div><div class="pk">Succès</div></div><div><div class="pv" style="color:var(--cy)">2.4s</div><div class="pk">Temps</div></div><div><div class="pv" style="color:var(--am)">$0.002</div><div class="pk">Prix</div></div></div>
|
|
<div style="margin-top:8px;font-size:9px;color:var(--d)">Types: reCAPTCHA, hCaptcha, FunCaptcha, Turnstile</div></div>
|
|
<div class="provider"><div style="display:flex;justify-content:space-between"><div class="provider-name">⚡ CapSolver</div><span class="badge badge-am">BACKUP</span></div><div class="provider-desc">API key: ****7bc3 • Balance: $15.20</div><div class="provider-stats"><div><div class="pv" style="color:var(--gn)">91.8%</div><div class="pk">Succès</div></div><div><div class="pv" style="color:var(--cy)">3.1s</div><div class="pk">Temps</div></div><div><div class="pv" style="color:var(--am)">$0.001</div><div class="pk">Prix</div></div></div>
|
|
<div style="margin-top:8px;font-size:9px;color:var(--d)">Types: reCAPTCHA, hCaptcha, Cloudflare Turnstile</div></div>
|
|
</div>
|
|
<h3 style="font-size:12px;margin:16px 0 10px;color:var(--cy)">📊 Usage par type de captcha (24h)</h3>
|
|
<table><thead><tr><th>Type</th><th>Résolus</th><th>Échoués</th><th>Taux</th><th>Temps moy.</th><th>Coût</th><th>Utilisé par</th></tr></thead><tbody>
|
|
<tr><td>reCAPTCHA v2</td><td>5,420</td><td>280</td><td style="color:var(--gn)">95.1%</td><td>1.8s</td><td>€8.12</td><td>Account Creator, O365 Registration</td></tr>
|
|
<tr><td>hCaptcha</td><td>3,210</td><td>245</td><td style="color:var(--gn)">92.9%</td><td>2.4s</td><td>€4.82</td><td>Temp Email Factory, Scraping</td></tr>
|
|
<tr><td>Cloudflare Turnstile</td><td>2,890</td><td>142</td><td style="color:var(--gn)">95.3%</td><td>1.2s</td><td>€2.89</td><td>Newsletter Extractor</td></tr>
|
|
<tr><td>reCAPTCHA v3</td><td>1,120</td><td>78</td><td style="color:var(--gn)">93.5%</td><td>3.5s</td><td>€1.68</td><td>GSuite Registration</td></tr>
|
|
<tr><td>Image captcha</td><td>207</td><td>12</td><td style="color:var(--gn)">94.5%</td><td>4.2s</td><td>€0.41</td><td>Dark Scraper</td></tr>
|
|
</tbody></table>
|
|
</div>
|
|
<div class="panel" id="tab-test">
|
|
<div class="grid2">
|
|
<div>
|
|
<h3 style="font-size:12px;margin-bottom:10px;color:var(--bl)">🧪 Test de résolution</h3>
|
|
<div class="form-row"><label>Type de captcha</label><select><option>reCAPTCHA v2</option><option>reCAPTCHA v3</option><option>hCaptcha</option><option>Cloudflare Turnstile</option><option>Image captcha</option></select></div>
|
|
<div class="form-row"><label>Provider</label><select><option>Auto (failover)</option><option>2Captcha</option><option>Anti-Captcha</option><option>CapSolver</option></select></div>
|
|
<button class="btn btn-bl" style="width:100%;padding:10px">🧩 Résoudre</button>
|
|
</div>
|
|
<div>
|
|
<h3 style="font-size:12px;margin-bottom:10px">📋 Résultat</h3>
|
|
<div style="background:var(--bg);border:1px solid var(--b);border-radius:6px;padding:12px;font-family:'JetBrains Mono',monospace;font-size:10px">
|
|
<div style="color:var(--d);margin-bottom:4px">// Token résolu</div>
|
|
<div style="color:var(--gn);word-break:break-all">03AGdBq24PBCbwiDRaS_MJ7Z...Kxa8p</div>
|
|
<div style="margin-top:8px;color:var(--d)">Provider: 2Captcha • Temps: 1.8s • Coût: $0.003</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="panel" id="tab-usage"><h3 style="font-size:12px;margin-bottom:10px">📈 Historique d'usage (7j)</h3>
|
|
<table><thead><tr><th>Jour</th><th>Total</th><th>Succès</th><th>Échoués</th><th>Coût</th><th>Temps moy.</th></tr></thead><tbody>
|
|
<tr><td>08/02</td><td>12,847</td><td style="color:var(--gn)">12,090</td><td style="color:var(--rd)">757</td><td>€18.40</td><td>2.3s</td></tr>
|
|
<tr><td>07/02</td><td>14,210</td><td style="color:var(--gn)">13,480</td><td style="color:var(--rd)">730</td><td>€20.10</td><td>2.1s</td></tr>
|
|
<tr><td>06/02</td><td>11,890</td><td style="color:var(--gn)">11,250</td><td style="color:var(--rd)">640</td><td>€16.80</td><td>2.4s</td></tr>
|
|
<tr><td>05/02</td><td>13,450</td><td style="color:var(--gn)">12,710</td><td style="color:var(--rd)">740</td><td>€19.20</td><td>2.2s</td></tr>
|
|
</tbody></table></div>
|
|
<div class="panel" id="tab-config">
|
|
<div class="grid2">
|
|
<div><h3 style="font-size:12px;margin-bottom:10px">⚙️ Failover</h3>
|
|
<div class="form-row"><label>Provider primaire</label><select><option>2Captcha</option><option>Anti-Captcha</option><option>CapSolver</option></select></div>
|
|
<div class="form-row"><label>Timeout (secondes)</label><input type="number" value="30"></div>
|
|
<div class="form-row"><label>Max retries</label><input type="number" value="3"></div>
|
|
<div class="form-row"><label>Budget max/jour (€)</label><input type="number" value="50"></div>
|
|
<button class="btn btn-bl" style="width:100%;margin-top:8px">💾 Sauvegarder</button>
|
|
</div>
|
|
<div><h3 style="font-size:12px;margin-bottom:10px">🔑 API Keys</h3>
|
|
<div class="form-row"><label>2Captcha</label><input type="password" value="****d8f2"></div>
|
|
<div class="form-row"><label>Anti-Captcha</label><input type="password" value="****a4e1"></div>
|
|
<div class="form-row"><label>CapSolver</label><input type="password" value="****7bc3"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script>
|
|
function showTab(id){document.querySelectorAll('.tab').forEach(t=>t.classList.remove('active'));document.querySelectorAll('.panel').forEach(p=>p.classList.remove('active'));document.getElementById('tab-'+id).classList.add('active');event.target.classList.add('active')}
|
|
setInterval(function(){document.getElementById('clock').textContent=new Date().toLocaleTimeString('fr-FR')},1000);
|
|
// === ARSENAL API INJECTION ===
|
|
async function arsenalLoad() {
|
|
try {
|
|
const r = await fetch('/api/captcha-solver.php?action=stats');
|
|
const d = await r.json();
|
|
console.log('Arsenal API loaded:', d);
|
|
if (d.data) arsenalRender(d.data);
|
|
else if (d.results) arsenalRender(d.results);
|
|
else arsenalRender(d);
|
|
} catch(e) { console.error('Arsenal API error:', e); }
|
|
}
|
|
function arsenalRender(data) {
|
|
// Update any stat counters on the page
|
|
document.querySelectorAll('[data-stat]').forEach(el => {
|
|
const key = el.dataset.stat;
|
|
if (data[key] !== undefined) el.textContent = data[key];
|
|
});
|
|
// Update tables if present
|
|
const tbody = document.querySelector('tbody');
|
|
if (tbody && Array.isArray(data)) {
|
|
tbody.innerHTML = data.slice(0,50).map(row => {
|
|
const vals = Object.values(row);
|
|
return '<tr>' + vals.map(v => '<td>' + (v ?? '-') + '</td>').join('') + '</tr>';
|
|
}).join('');
|
|
}
|
|
}
|
|
arsenalLoad();
|
|
setInterval(arsenalLoad, 30000);
|
|
async function solveCaptcha(img){const r=await fetch('/api/captcha-solver.php',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({action:'solve',image:img})});return r.json();}
|
|
|
|
|
|
|
|
</script>
|
|
</body></html>
|