如果网站遇到高频请求攻击,在回文里添加 gzip 炸弹似乎是一个不错的方法。通常来说的做法是使用
dd if=/dev/zero bs=1M count=1024 | zip zipbomb.zip -
这个命令,从 /dev/zero 生成压缩包,然后将被攻击的链接指向这个文件就可以了。
但是一般来说这么搞的话 headers 里面的 content-type 会变成 application/octet-stream ,或者攻击方的爬虫单纯根据回文大小也可以比较轻松地过滤掉这些炸弹。有没有什么办法可以嵌入压缩率更高的炸弹呢?比如在 contetn-type=application/json 的类型的回文里插入一些高压缩内容,如果要读取回文的话就需要较大的内存占用,从而限制攻击方的物理资源。
我简单看了一下,似乎 gzip 格式的高压缩都是通过嵌套实现的,而 http 的 gzip 压缩似乎是整个回文都会被压缩,很难单独在 json 里面插入一个嵌套压缩的 gzip 这种东西。万能的 v 友有什么方法吗?