web攻击

实战:一次失败的WEB攻击试验,欢迎高手补充

巧了我就是萌 提交于 2020-03-01 20:23:00
首先声明:这个文章我描述的是一次比较失败的WEB攻击试验,理论基础是一次在网上看到的一篇关于"慢攻击"的概念,那什么叫慢攻击呢? 在解释这个"慢攻击"概念之前,先讲下HTTP的请求报文头,HTTP的请求报文头是以\r\n\r\n为结束的,服务器在接收到这个标志符之后,才认为请求报文结束,转入做相应的WEB处理。这个"慢攻击"就是利用这个机制。 攻击方式:首先一个客户端向服务器发起HTTP请求后,不做大规模的数据包发送,但就是一直不发送\r\n\r\n这个结束符,并且客户端每隔一段时间又向服务器发送小量的参数数据包,如&a=1。此时服务器一边在等待客户端输入参数结束符,另外一边由于每隔一段时间又收到数据包,不认为客户端断线。久而久之,就把服务器拖死了。从另以方面讲,由于发送的数据包不多,并且一直没有输入结束符,在web服务器的访问日志文件又看不到访问记录,严重的来讲,服务器怎么死的都不知道。 但是,测试的结果离预期太遥远了,以下是攻击步骤: 我写的代码有点乱,就不贴出来献丑了,基本的测试方式是: 1、每隔线程中开启一批socket连接到目标服务器(一个线程中的socket数由启动脚本参数设置),先调用这些socket向服务器发正常的HTTP请求串,然后在线程中每隔几秒钟调用这些socket向服务端写参数数据; 2、每个进程中开启多个线程,每隔进程开启的线程数由启动脚本参数设置; 3

通过配置nginx 抵御不合法请求

微笑、不失礼 提交于 2019-11-27 06:47:31
## ngx_http_limit_conn_module 模块 使用此模块主要用来限制每秒请求数量,至于依据什么条件限制是由我们来自定义的。 官方文档 Module ngx_http_limit_req_module 中文翻译的 nginx限制请求数ngx_http_limit_req_module模块 文档讲的很详细了,大致说下: limit_req_zone $variable zone=name:size rate=rate; 命令的意思是,以 $variable 变量为条件,起名为 name ,设置的存储空间大小为 size ,设置限定频率为 rate ; 我们可以设置 多个,不同条件,不同名称,不同大小的限制 。 这个定义我们是需要写在** http 配置段中**。 在匹配的location中写上 limit_req zone=name [burst=number] [nodelay]; 这里 burst 就是允许的漏桶数,当请求频率大于 rate 但是超出的数量不大于 burst 设置的数量,则nginx会将超出的请求延迟后面返回。如果请求数量超出 burst 了,则将超出部分直接返回错误码,默认 503 。至于 nodelay 就是设置是否要延迟,有它不超过 burst 的请求才延迟。 网上大多条件都是 $binary_remote_addr