请输入图片描述
果然是第⑨番,人都有点⑨了

起因是某位大佬要求将waf返回的403状态码在替换成伪造的404页面,以达到隐藏系统的架构特征(bug)巴拉巴拉之类的.
我一听,这个简单,于是在做之前问了下GBT,GBT很快给出了答案

server {
listen 80 ssl;
listen [::]:80 ssl;
server_name domain.com;
location / {
    fastcgi_intercept_errors on;
    proxy_pass https://backend_server;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

error_page 403 /403.html;
location = /403.html {
    root /403.html;
} 

}

于是乎你选择相信了GBT,并将上面的配置就这么抄到了 nginx 的配置文件里面去.

sec
:wq
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
nginx -s reload

emmmm,完美,打开业务网页也正常,然后输入个一定会被拦截的注入语句

https://domain.com/?id=1 AND 1=1

请输入图片描述
咋不是自定义的空白页啊,这不科学
于是乎开始了漫长的google过程,终于在千篇一律教你配置fastcgi_intercept_errors的文章中发现,项目是用nginx做了反向代理的,配置fastcgi_intercept_errors是不生效的,需要配置proxy_intercept_errors才行。
于是乎

     server {
listen 80 ssl;
listen [::]:80 ssl;
server_name domain.com;
location / {
    #fastcgi_intercept_errors on; #这玩意不生效的
    proxy_intercept_errors on;
    proxy_pass https://backend_server;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

error_page 403 /403.html;
location = /403.html {
    root /403.html;
} 

}

终于,在重启完nginx之后,熟悉的自定义报错页出现在了我的面前
请输入图片描述

本来金曜日想早点下班溜的,结果又是无意义的折腾了一晚上,唉