为了彻底的把WEB服务器--nginx完美的隐藏起来(隐藏版本号已经不能满足我的好奇心了),今天查看了下nginx的源码,发现还真有个地方可以修改的,所以,我决定修改下自定义的WebServer,吓唬吓唬那些Hacker。
1、配置为隐藏版本的前提下
大部分情况下,Hacker小子的扫描工具是扫描我们response返回的header中的server信息.我们可以采用编译源码的方法来改变返回的Server,笔者果子的版本是nginx1.4.7,我们修改src/http/ngx_http_header_filter_module.c 中的49行:
static char ngx_http_server_string[] = "Server: nginx" CRLF;
把其中的nginx改为我们自己想要马甲,果子就改为了GreatFireWall,重新编译nginx后,随便打开一个目录链接,出现蛋疼的403页面,下边神气的……还是nginx,没有传说中的GreatFireWall.(到这一步的前提是你在nginx.conf的http部分配置了server_tokens off;选项。)
现在应该怎么办呢?我们在浏览器页面按下F12,查看源码发现有一行代码:<center>nginx</center>,估计该变量在代码中写死了,于是拿出搜索神器grep,进入nginx源码目录,在终端敲下以下命令:
grep -rn "center" *
我们找到了文件:src/http/ngx_http_special_response.c,修改ngx_http_error_tail变量如下:
static u_char ngx_http_error_tail[] = "<hr><center>GreatFireWall</center>" CRLF "</body>" CRLF "</html>" CRLF ;
重新编译,重启nginx后发现:
2、配置为不隐藏版本号的前提下
如果你的版本号是开着的,你又想调戏下Harker小子.比如Server:DAWOA/1.9.0 (打我啊)
我们修改src/core/nginx.h 定位到13-14行
#define NGINX_VERSION "1.4.7"
#define NGINX_VER "nginx/" NGINX_VERSION
Server返回的就是常量NGINX_VER, 我们把NGINX_VERSION大小定义为1.9.0,nginx改为DAWOA就能达到我们的目的了
- 微信扫码赞助
- 支付宝赞助
2015/05/25 11:08:21
第一次访问,支持一下哈。