example
unknown
javascript
4 years ago
3.8 kB
12
Indexable
const puppeteer = require("puppeteer-extra");
const StealthPlugin = require("puppeteer-extra-plugin-stealth");
puppeteer.use(StealthPlugin());
const delay = require("delay");
const fs = require("fs");
const exec = require("child_process").exec;
(async () => {
const email = "gidhan@dikitin.com";
console.log(`[+] Email: ${email}`);
const options = { waitUntil: "networkidle2" };
const browser = await puppeteer.launch({
headless: false,
args: ["--disable-popup-blocking", "--allow-popups-during-page-unload"],
});
const page = await browser.newPage();
let pages = await browser.pages();
await pages[0].close();
await page.setUserAgent(
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3419.0 Safari/537.36"
);
await page.goto("https://accounts.binance.me/en/register", options);
const emailField = await page.$("input[name=email]");
await emailField.type(email);
await emailField.dispose();
const passwordField = await page.$("input[name=password]");
await passwordField.type("Anjay123@");
await passwordField.dispose();
await delay(2000);
await page.click("#click-registration-submit");
let originalImage = "";
await Slider(page, originalImage);
await page.waitForSelector("div[class=css-1s58o4v]", {
visible: true,
timeout: 0,
});
fs.unlinkSync("./captcha.png");
fs.unlinkSync("./captcha-0.png");
fs.unlinkSync("./captcha-1.png");
console.log("[+] Captcha bypassed!");
})();
async function Slider(page, originalImage) {
await page.setRequestInterception(true);
page.on("request", (request) => request.continue().catch(async (e) => {}));
page.on("response", async (response) => {
if (response.request().url().includes("image/antibot/image/SLIDE/")) {
originalImage = await response.buffer().catch(() => {});
}
});
await page.waitForSelector(".verify-slider.css-13rz4tr", { visibe: true, timeout: 60000 });
await page.waitForSelector(".css-p72bjc", { visibe: true, timeout: 5000 });
const sliderHandler = await page.$(".css-p72bjc");
const handler = await sliderHandler.boundingBox();
fs.writeFileSync("captcha.png", originalImage, "binary");
exec(
"magick compare -metric RMSE -subimage-search captcha.png base.png captcha.png",
async (error, stdout, stderr) => {
const x = error.toString().split("@")[error.toString().split("@").length - 1].trim().split(",")[0];
await page.mouse.move(handler.x, handler.y);
await page.mouse.down();
const valueData = parseInt(x) - 89;
let currentPosition = 0;
for (let index = 0; index < valueData; index++) {
await page.mouse.move(handler.x + currentPosition, handler.y);
currentPosition = index;
}
await page.mouse.move(handler.x + currentPosition, handler.y, { steps: 10 });
await page.mouse.up();
await delay(3000);
const accept = await page.evaluate(() => {
return !!document.querySelector('a[class="css-xwod86"]');
});
if (!accept) {
const head = await page.evaluate(() => {
return !!document.querySelector('div[class="css-aa8ouv"]');
});
if (head) {
await page.click("svg[class=css-9z3u57]");
await delay(2000);
return Slider(page, originalImage);
}
} else {
await page.click("svg[class=css-9z3u57]");
await delay(2000);
return Slider(page, originalImage);
}
}
);
}Editor is loading...