前言
压缩包炸弹英文为Arc.Bomb,是一款压缩包病毒。它通常只有几百KB,但是解压后会变成上百MB的庞然大物。
一般来说,压缩文件不会直接感染系统,如果贸然对其进行解压缩,会瞬间挤爆磁盘,导致服务器无法提供服务或直接宕机。
压缩炸弹是一种高度危险的文件类型,通常用于攻击计算机系统。它是一种特殊的压缩文件,可以在解压缩时扩大到比原始文件更大的尺寸,甚至大到足以破坏整个系统。
压缩文件大小及解压后大小:
| zbsm.zip | 42 kB | → | 5.5 GB |
|---|---|---|---|
| zblg.zip | 10 MB | → | 281 TB |
| zbxl.zip | 46 MB | → | 4.5 PB (Zip64, less compatible) |
新版本的杀毒软件会自动查杀下载的以上文件,如果需要测试的话,需要先关掉火绒
压缩炸弹的工作原理
压缩炸弹的工作原理非常简单,它利用了压缩算法的特性。在压缩算法中,相似的数据块会被替换为对这些数据块进行描述的更短的代码。这使得压缩文件比原始文件更小,但也意味着同一段数据可以被多次引用。
压缩炸弹利用了这一点,将一个小文件压缩成一个极其小的存档文件,但是这个存档文件里包含了大量重复的数据块。当你尝试解压缩这个存档文件时,解压缩程序会替换这些重复的数据块,这就导致了一系列问题。
解压缩程序会不断地解压缩这些数据块,直到达到计算机可以处理的极限。如果计算机的资源被消耗殆尽,它可能会崩溃或冻结。如果没有采取适当的防护措施,这种攻击可以破坏整个系统。
安装Python环境
参考:zhuanlan.zhihu.com/p/579183896
安装完成后,输入 python --version,能够显示版本号,即安装完成
制作炸弹
下载以上的开源项目到本地,然后在cmd窗口打开
执行命令
python3 zipbomb.py --mode=quoted_overlap --num-files=250 --compressed-size=21179 > zbsm.zip
但是很遗憾,在windows上未复现,zbsm.zip文件是空的
测试炸弹
从官网下载 zbsm.zip 文件后,解压真的有5.5GB,
如何防范
限制文件大小
限制文件大小是避免压缩炸弹攻击的一种方法。这可以通过在系统级别设置文件大小限制来实现。这样,如果一个文件尝试超出这个限制,它将被拒绝或自动删除。
使用压缩算法
使用更好的压缩算法也可以帮助防范压缩炸弹攻击。现代压缩算法通常会检测重复的数据块,并将它们替换为更短的代码。这意味着即使存档文件中有重复的数据块,它们也不会被多次解压缩。因此,可以使用更高效的压缩算法来防范压缩炸弹。
使用安全的解压缩程序
使用安全的解压缩程序也可以帮助防止压缩炸弹攻击。一些解压缩程序会检测文件大小和解压缩后的数据量,并在达到一定阈值时停止解压缩。这样,即使存在压缩炸弹,也可以避免损害系统。
安装杀毒软件
安装杀毒软件可以帮助识别和清除压缩炸弹文件。杀毒软件通常会检测文件大小和数据量,并识别出潜在的压缩炸弹文件。如果发现这样的文件,杀毒软件会将其标记为危险文件或直接删除。