Update plugins/subdo.js
Browse files- plugins/subdo.js +31 -10
plugins/subdo.js
CHANGED
|
@@ -1,13 +1,36 @@
|
|
| 1 |
-
const
|
| 2 |
|
| 3 |
async function getTurnstileToken() {
|
| 4 |
try {
|
| 5 |
-
const
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
} catch (error) {
|
| 12 |
throw new Error("Gagal mendapatkan Turnstile token: " + error.message);
|
| 13 |
}
|
|
@@ -73,15 +96,12 @@ function extractIPFromDNS(dnsData) {
|
|
| 73 |
|
| 74 |
async function subdo(domain) {
|
| 75 |
const token = await getTurnstileToken();
|
| 76 |
-
|
| 77 |
const subdomainData = await findSubdomains(domain, token);
|
| 78 |
-
|
| 79 |
const results = [];
|
| 80 |
|
| 81 |
for (const sub of subdomainData.data) {
|
| 82 |
try {
|
| 83 |
const dnsData = await resolveDNS(sub.subdomain);
|
| 84 |
-
|
| 85 |
const ip = extractIPFromDNS(dnsData);
|
| 86 |
|
| 87 |
let result = {
|
|
@@ -145,6 +165,7 @@ const handler = async (req, res) => {
|
|
| 145 |
const result = await subdo(domain);
|
| 146 |
|
| 147 |
res.json({
|
|
|
|
| 148 |
success: true,
|
| 149 |
data: {
|
| 150 |
domain: result.domain,
|
|
|
|
| 1 |
+
const TURNSTILE_SOLVER_URL = 'https://herzaj-turnstile-solver.hf.space';
|
| 2 |
|
| 3 |
async function getTurnstileToken() {
|
| 4 |
try {
|
| 5 |
+
const submitResponse = await fetch(`${TURNSTILE_SOLVER_URL}/turnstile`, {
|
| 6 |
+
method: 'POST',
|
| 7 |
+
headers: {
|
| 8 |
+
'Content-Type': 'application/json'
|
| 9 |
+
},
|
| 10 |
+
body: JSON.stringify({
|
| 11 |
+
url: 'https://www.subdomainfinder.in',
|
| 12 |
+
sitekey: '0x4AAAAAAAj7jyMV3Zv9ZMN-'
|
| 13 |
+
})
|
| 14 |
+
});
|
| 15 |
+
|
| 16 |
+
if (!submitResponse.ok) {
|
| 17 |
+
throw new Error(`Failed to submit task: ${submitResponse.status}`);
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
const taskData = await submitResponse.json();
|
| 21 |
+
const taskId = taskData.task_id;
|
| 22 |
+
|
| 23 |
+
await new Promise(resolve => setTimeout(resolve, 5000));
|
| 24 |
+
|
| 25 |
+
const resultResponse = await fetch(`${TURNSTILE_SOLVER_URL}/result?id=${taskId}`);
|
| 26 |
+
|
| 27 |
+
if (!resultResponse.ok) {
|
| 28 |
+
throw new Error(`Failed to get result: ${resultResponse.status}`);
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
const resultData = await resultResponse.json();
|
| 32 |
+
return resultData.value;
|
| 33 |
+
|
| 34 |
} catch (error) {
|
| 35 |
throw new Error("Gagal mendapatkan Turnstile token: " + error.message);
|
| 36 |
}
|
|
|
|
| 96 |
|
| 97 |
async function subdo(domain) {
|
| 98 |
const token = await getTurnstileToken();
|
|
|
|
| 99 |
const subdomainData = await findSubdomains(domain, token);
|
|
|
|
| 100 |
const results = [];
|
| 101 |
|
| 102 |
for (const sub of subdomainData.data) {
|
| 103 |
try {
|
| 104 |
const dnsData = await resolveDNS(sub.subdomain);
|
|
|
|
| 105 |
const ip = extractIPFromDNS(dnsData);
|
| 106 |
|
| 107 |
let result = {
|
|
|
|
| 165 |
const result = await subdo(domain);
|
| 166 |
|
| 167 |
res.json({
|
| 168 |
+
author: "Herza",
|
| 169 |
success: true,
|
| 170 |
data: {
|
| 171 |
domain: result.domain,
|