商务合作加Q:411239339

nginx装逼之修改自定义Server信息

浏览:659次阅读
一条评论

共计 1037 个字符,预计需要花费 3 分钟才能阅读完成。

为了彻底的把 WEB 服务器 --nginx 完美的隐藏起来(隐藏版本号已经不能满足我的好奇心了),今天查看了下 nginx 的源码,发现还真有个地方可以修改的,所以,我决定修改下自定义的 WebServer,吓唬吓唬那些 Hacker。

1、配置为隐藏版本的前提下
大部分情况下,Hacker 小子的扫描工具是扫描我们 response 返回的 h eader 中的 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 装逼之修改自定义 Server 信息 还是 nginx, 没有传说中的 GreatFireWall.(到这一步的前提是你在 nginx.conf 的 http 部分配置了 server_tokens off; 选项。)

nginx 装逼之修改自定义 Server 信息

现在应该怎么办呢?我们在浏览器页面按下 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 后发现 nginx 装逼之修改自定义 Server 信息:

nginx 装逼之修改自定义 Server 信息

 

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 就能达到我们的目的了

正文完
扫码赞助
post-qrcode
 0
果子
版权声明:本站原创文章,由 果子 于2015-05-18发表,共计1037字。
转载说明:除特殊说明外本站文章皆由果较瘦原创发布,转载请注明出处。
评论(一条评论)
2015-05-25 11:08:21 回复

第一次访问,支持一下哈。

 Windows  Chrome  中国山东省菏泽市联通