123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import * as puppeteer from "puppeteer";
- import * as fs from "fs/promises";
- import * as path from "path";
-
- import { dequeue } from "./database";
-
- const flag = process.env.FLAG ?? "flag{missing}"
-
- const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
-
- const visitOne = async () => {
- const url = await dequeue();
- if (url === undefined) {
- await sleep(500);
- return;
- }
-
- const browser = await puppeteer.launch({
- dumpio: true,
- pipe: true,
- args: ['--no-sandbox', '--disable-setuid-sandbox']
- });
- const page = await browser.newPage();
- await page.setCookie({
- name: "flag",
- value: flag,
- domain: "localhost:3838",
- })
-
- await Promise.race([
- page.goto(url),
- sleep(3000),
- ]);
- await sleep(3000);
-
- await browser.close();
- }
-
- export const startVisiting = async () => {
- while (true) {
- try {
- await visitOne();
- } catch (e) {
- console.error(e);
- }
- }
- }
|