máy chủ của tôi gặp sự cố mỗi khi một pentester khó chịu cố gắng tìm lỗ hổng bảo mật trong ứng dụng của tôi.
Tôi thấy điều này trong errorlog:
17:48:48 +0200] "\x16\x03\x01\x00M\x01\x00\x00I\x03\x03\xDBJA\xC5\xB17\xF6\xDA \xD4\xEEEg0\xE0\xF2\xF2\xC9S\ xE4\xF9v}\x1E\x00\xC8\xC3d\x 80h;= \x1F\xD2\xAF?\x88\x8A\xA2\xCF\x16G\x99\x1D\x91" 400 173 "-" "-"
Máy chủ được cấu hình giống như một máy chủ nginx + php-fpm bình thường. Cổng 80 được chuyển hướng đến 443 và ssl được định cấu hình chính xác.
Tôi cũng đã thêm dòng này:
if ($request_method !~ ^(GET|HEAD|POST|OPTIONS|DELETE|PUT|PATCH)$) { return 405; }
(trong cả hai cấu hình máy chủ)
Đây cũng là yêu cầu "dồn nén" duy nhất có kết quả là 400. Tất cả các yêu cầu khác đều có kết quả là 301 hoặc 404.
Tôi đã gặp sự cố tương tự khi phần ssl của nginx không được định cấu hình đúng. Tôi đã kiểm tra cấu hình của mình nhưng có vẻ ổn.
Tôi gặp sự cố tương tự trên một máy chủ khác có cấu hình tương tự và trên máy chủ có cấu hình nginx -> apache_mpm_prefork_fpm.
Bất kỳ ý tưởng nào về điều này và cách bảo vệ máy chủ khỏi sự cố.
Làm cách nào để tạo lại một yêu cầu dồn nén như vậy (Tôi đã thử nó trong người đưa thư nhưng tôi nhận được một kết quả khác).
Cảm ơn nhiều.
CHỈNH SỬA
Tôi đã tìm ra cách tái tạo nhật ký đó:
https://servername:80.
Nhưng tôi không thể tìm ra cách chặn loại yêu cầu này.
Tôi đã thử với $scheme nhưng yêu cầu được mã hóa. Tôi đã cố gắng thêm ssl vào cấu hình nhưng không có gì thay đổi.
Phải có một lý do tại sao những trang web pentest/exploid cố gắng gửi yêu cầu https đến cổng 80.