Skip to content

Instantly share code, notes, and snippets.

@doxyf
Created September 2, 2022 08:13
Show Gist options
  • Save doxyf/5d78a588fa21c048931ea78b4cd31cde to your computer and use it in GitHub Desktop.
Save doxyf/5d78a588fa21c048931ea78b4cd31cde to your computer and use it in GitHub Desktop.
Blasting an infinite stream of 1 byte packets be like
const Net = require('node:net');
const crypto = require('node:crypto');
let server = new Net.Server();
let shake =
`HTTP/2 200 KO
expires: -1
cache-control: private, max-age=0
content-type: text/html; charset=ASCII
content-length: -1
`
let body =
`<!DOCTYPE html>
<html>
<head>
<title>We love sockets</title>
</head>
`
server.on('connection', socket => {
socket.on('connect', () => console.log('A new connection has been established.'));
socket.on('close', () => console.log('Socket closed.'));
socket.on('end', () => console.log('Socket ended.'));
socket.on('timeout', () => console.log('Socket timed out.'));
socket.on('error', (e) => console.log(e.message));
socket.on('data', data =>
{
let datastr = data.toString()
console.log(datastr.split('\n')[0]);
if(datastr.startsWith('GET /favicon.ico HTTP/')) return socket.end();
if(datastr.startsWith('GET ') && datastr.includes(' HTTP/')) socket.write(shake+body);
while(socket.writable) socket.write(crypto.randomBytes(1).toString('ascii'));
}
);
});
server.listen(3306, () => console.log('Server up @ 3306'));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment