2024寒假训练赛3——Writeup
WEB TODO 题目给了两个端口,也就是起了两个web服务,一个是一个TODO应用,一个是。。。额。html测试器 应用一 应用二 作者直接给出了源码,页面里看不出啥,我们直接来看源码 在util/report.js发现了可疑的地方。 const LOGIN_URL = "http://127.0.0.1/login"; let browser = null const visit = async (url) => { const ctx = await browser.createIncognitoBrowserContext() const page = await ctx.newPage() await page.goto(LOGIN_URL, { waitUntil: 'networkidle2' }) await page.waitForSelector('form') await page.type('wired-input[name=username]', process.env.USERNAME) await page.type('wired-input[name=password]', process.env.PASSWORD) await page.click('wired-button') try { await page.goto(url, { waitUntil: 'networkidle2' }) } finally { await page.close() await ctx.close() } } const doReportHandler = async (req, res) => { ... await visit(url) ... } 在routes/index.js里可以看到router.post('/report', doReportHandler); ...