zoukankan      html  css  js  c++  java
  • 修改Nginx的header伪装服务器

    有时候为了伪装自己的真实服务器环境.
    不像让对方知道自己的webserver真实环境,就不得不修改我们的webserer软件了!
    今天看了一下baidu.com的webserver感觉像是nginx修改的.
    C:/curl-7.18.0>curl.exe -I www.baidu.com
    HTTP/1.1 200 OK
    Date: Tue, 11 Mar 2008 05:00:39 GMT
    Server: BWS/1.0
    Content-Length: 3022
    Content-Type: text/html
    Cache-Control: private
    Expires: Tue, 11 Mar 2008 05:00:39 GMT
    Set-Cookie: BAIDUID=41BB2845D3E8BC1AEE99D4CECB90C50A:FG=1; expires=Tue, 11-
    8 05:00:39 GMT; path=/; domain=.baidu.com
    P3P: CP=" OTI DSP COR IVA OUR IND COM "

    哈只是感觉,人家有坚强的开发后盾,可能是自己开发的!

    于是自己翻了一下nginx源码了,发现竟然很容修改就可以实现.
    cd /usr/local/src/nginx-0.5.35/src/core/

    [root@zyatt core]# cat nginx.h

    /*
    * Copyright (C) Igor Sysoev
    */


    #ifndef _NGINX_H_INCLUDED_
    #define _NGINX_H_INCLUDED_


    #define NGINX_VERSION    "1.0"   //型号
    #define NGINX_VER       "LPKWS/" NGINX_VERSION //服务器名

    #define NGINX_VAR       "LPKWS"
    #define NGX_OLDPID_EXT     ".oldbin"


    #endif /* _NGINX_H_INCLUDED_ */


    测试效果
    C:/curl-7.18.0>curl.exe -I 211.100.11.122/info.PHP   (此Nginx没有做优化,配置expires,gzip等,仅为测试)

    HTTP/1.1 200 OK
    Server: LPKWS/1.0
    Date: Tue, 11 Mar 2008 04:53:02 GMT
    Content-Type: text/html
    Transfer-Encoding: chunked
    Connection: keep-alive
    Keep-Alive: timeout=20
    X-Powered-By: php/5.2.4

       哈,仅为娱乐,要想真正的优化和安全考虑,还是应该好好读读源代码,踏踏实实做好细节工作!

    修改apache的header伪装服务器

    作者:守住每一天 转自:www.linuxtone.org/thread-1566-1-1.html


    当客户端连接到Apache服务器的时候,Apache一般会返回服务器版本、非缺省模块等信息,例如:
    Server: Apache/2.2.0 (Unix) mod_perl/1.26
    解决:
    你可以在Apache的配置文件里面作如下设置让它返回的关于服务器的信息减少到最少:
    ServerTokens Prod
    注意:
    这样设置以后Apache还会返回一定的服务器信息,比如:
    Server: Apache
    但是这个不会对服务器安全产生太多的影响,因为很多扫描软件是扫描的时候是不顾你服务器返回的头部信息的。你如果想把服务器返回的相关信息变成:
    Server: It iS a nOnE-aPaCHe Server
    那么你就要去修改源码了。
    方法:
    代码:
    修改几个Apache的几个源代码文件,然后自己编译

    操作:
    一、文件操作
    file: include/ap_release.h

    #define AP_SERVER_BASEVENDOR"这里填写开发组织名,例如:Microsoft Corp."
    #defineAP_SERVER_BASEPRODUCT"这里填写服务器软件名,例如:Microsoft-IIS"
    #defineAP_SERVER_MAJORVERSION "主版本,例如:5"
    #defineAP_SERVER_MINORVERSION "次版本,例如:0"
    #defineAP_SERVER_PATCHLEVEL "修正版本,例如:1"

    file: os/os2/os.h

    #define PLATFORM "这里填写操作系统的名称,例如:Win32"

    二、编译操作
    代码:
    按照一般正常步骤编译安装

     

     

     

     

    修改webserver的header伪装服务器

    一般在Linux下查询一个网站链接返回的header信息,用
    引用:
    curl -I 链接

    curl --head 链接
    即可

    好了开始正题
    修改header信息
    一、Apache
    引用:
    修改
    include/ap_release.h

    #define AP_SERVER_BASEVENDOR "Apache Software Foundation"
    这里填写开发组织名,例如:Microsoft Corp.
    #define AP_SERVER_BASEPROJECT "Apache HTTP Server"
    这里填写服务器软件名
    #define AP_SERVER_BASEPRODUCT "Apache"
    这里填写服务器软件名
    #define AP_SERVER_MAJORVERSION_NUMBER 2
    主版本
    #define AP_SERVER_MINORVERSION_NUMBER 2
    次版本
    #define AP_SERVER_PATCHLEVEL_NUMBER   14
    修正版本


    修改
    os/os2/os.h

    #define PLATFORM "OS/2"
    这里填写操作系统的名称
    二、Nginx
    引用:
    两种方法任选其一即可
    1、修改
    src/core/nginx.h
    2、修改
    src/http/ngx_http_header_filter_module.c

    static char ngx_http_server_string[] = "Server: nginx" CRLF;
    static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;
    三、IIS
    引用:
    需要用16进制编辑器编辑
    SYSTEM32/INETSRV/W3SVC.DLL
    四、Tomcat 6.0.20
    引用:

    java/org/apache/coyote/http11/Constants.java

    java/org/apache/coyote/ajp/Constants.java
    这两个文件中查找
    public static final byte[] SERVER_BYTES =
    ByteChunk.convertToBytes("Server: Apache-Coyote/1.1" + CRLF);
    然后修改红色部分
    五、Cherokee
    引用:
    修改
    cherokee/version.c
    中包含有
    Cherokee web server
    的部分
  • 相关阅读:
    Singleton patterns 单件(创建型模式)
    JS的运算问题……
    Java 新手学习日记一
    pycharm远程调试配置
    MATLAB2010安装方法
    人生三境界
    SAS数据步与过程步,数据步语句
    Google Chrome浏览器调试功能介绍
    认识Java标识符
    java多态和继承
  • 原文地址:https://www.cnblogs.com/linkenpark/p/7283205.html
Copyright © 2011-2022 走看看