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

2015/05/1822:16:32 1

为了彻底的把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页面,下边神气的……sad还是nginx,没有传说中的GreatFireWall.(到这一步的前提是你在nginx.conf的http部分配置了server_tokens off;选项。)

403

现在应该怎么办呢?我们在浏览器页面按下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后发现laugh:

gfw

 

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

  • 微信扫码赞助
  • weinxin
  • 支付宝赞助
  • weinxin

发表评论

您必须才能发表评论!

目前评论:1   其中:访客  0   博主  0

    • song1992.356688.com

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