programing

명령 줄에 액세스하지 않고 실행중인 Apache 버전을 어떻게 찾습니까?

nasanasas 2020. 10. 31. 09:48
반응형

명령 줄에 액세스하지 않고 실행중인 Apache 버전을 어떻게 찾습니까?


버전이 인코딩 된 파일을 찾거나 웹에서이를 폴링하여 버전을 표시해야합니다. FTP를 통해 설치 위치를 검색 할 수 있지만 서버가 명령 줄 액세스를 제공하지 않는 호스트에서 실행 중입니다.

HEAD를 시도했지만 버전 번호가보고되지 않았습니다.

404를 얻기 위해 누락 된 페이지를 시도하면 가로 채고 서버 정보가없는 재고 페이지가 반환됩니다. 그것은 서버가 강화되고 있음을 가리키는 것 같습니다.

아직 더 가까이 ...

제안 된대로 PHP 파일을 올렸지 만 파일을 탐색 할 수없고로드 할 URL 경로를 파악할 수 없습니다. 어쨌든 나는 많은 액세스 거부 메시지와 동일한 주식 404 페이지를 얻고 있습니다. 나는 서버가 매우 견고하게 보호된다는 것을 알기 때문에 약간의 위안을 얻고 있습니다.


방법

호스트의 포트 80에 연결하여 보냅니다.

HEAD / HTTP/1.0

뒤에 캐리지 리턴 + 줄 바꿈이 두 번되어야합니다.

당신은 이와 같은 것을 다시 얻을 것입니다

HTTP/1.1 200 OK
Date: Fri, 03 Oct 2008 12:39:43 GMT
Server: Apache/2.2.9 (Ubuntu) DAV/2 SVN/1.5.0 PHP/5.2.6-1ubuntu4 with Suhosin-Patch mod_perl/2.0.4 Perl/v5.10.0
Last-Modified: Thu, 02 Aug 2007 20:50:09 GMT
ETag: "438118-197-436bd96872240"
Accept-Ranges: bytes
Content-Length: 407
Connection: close
Content-Type: text/html; charset=UTF-8

그런 다음 Server : 헤더에서 아파치 버전을 추출 할 수 있습니다.

사용할 수있는 일반적인 도구

Perl의 LWP 라이브러리 전체 설치와 함께 제공되는 HEAD 유틸리티를 사용할 수 있습니다.

HEAD http://your.webserver.com/

또는 curl 유틸리티를 사용하십시오.

 curl --head http://your.webserver.com/

당신은 또한 같은 서버 헤더를 볼 수있는 브라우저 확장 사용할 수있는 라이브 HTTP 헤더 또는 방화범이 끌려 파이어 폭스, 또는 피들러 IE를 들어

Windows에 갇혀 있습니까?

드디어. Windows를 사용 중이고 다른 것이없는 경우 명령 프롬프트를 열고 (시작 메뉴-> 실행, "cmd"입력 및 Return 키 누르기) 다음을 입력합니다.

telnet your.webserver.com 80

그런 다음 입력하십시오 (주의 깊게, 문자가 반향되지 않을 것입니다)

HEAD / HTTP/1.0

Return 키를 두 번 누르면 서버 헤더가 표시됩니다.

기타 방법

cfeduke 및 Veynom에서 언급했듯이 서버는 Server : 헤더에 제한된 정보를 반환하도록 설정할 수 있습니다. PHP 스크립트를 호스트에 업로드하십시오.

<?php phpinfo() ?>

웹 브라우저로 페이지를 요청하면 거기에보고 된 Apache 버전이 표시됩니다.

PHPShell사용 해보고 다음과 같은 명령을 시도해 볼 수도 있습니다.

/usr/sbin/apache2 -V

httpd -v 서버에서 실행중인 Apache 버전을 제공합니다 (SSH / 셸 액세스 권한이있는 경우).

출력은 다음과 같아야합니다.

Server version: Apache/2.2.3
Server built:   Oct 20 2011 17:00:12

제안 된대로 apachectl -v동일한 출력을 제공 할 수도 있지만 더 많은 Linux 버전에서 지원됩니다.


드물게 강화 된 HTTP 서버가 서버 정보 나 잘못된 서버 정보를 제공하지 않도록 구성됩니다. 이러한 시나리오에서 서버에 PHP가 활성화 된 경우 다음을 추가 할 수 있습니다.

<?php phpinfo(); ?>

파일에서 찾아보고

_SERVER["SERVER_SOFTWARE"]

기입. 이 방법은 PHP 파일을 생성하기 위해 먼저 컴퓨터에 액세스해야하기 때문에 자주 변경되지 않는다고 생각하지만 정보가 부족하거나 오해의 소지가 있습니다.


경고, 일부 Apache 서버는 다음과 같이 HEAD를 사용할 때 항상 버전 번호를 보내지 않습니다.

HTTP/1.1 200 OK
Date: Fri, 03 Oct 2008 13:09:45 GMT
Server: Apache
X-Powered-By: PHP/5.2.6RC4-pl0-gentoo
Set-Cookie: PHPSESSID=a97a60f86539b5502ad1109f6759585c; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Content-Type: text/html



Connection to host lost.

PHP가 설치되어 있다면 php info 명령을 사용하십시오 :

<?php phpinfo(); ?>

Apache 서버에서 제공하는 버전 정보의 수준은 해당 구성의 ServerTokens 설정으로 구성 할 수 있습니다.

서버 오류 페이지에 버전이 표시되는지 여부를 제어하는 ​​설정도 있다고 생각합니다. 비록 그것이 무엇인지 기억이 나지 않습니다. 서버에 직접 액세스 할 수없고 서버 관리자가 유능하고 실행중인 버전을 알고 싶지 않다면 ... SOL 일 수 있습니다 .


포트 80에서 호스트에 텔넷을 연결합니다.

유형:

get / http1.1
::enter::
::enter::

It is kind of an HTTP request, but it's not valid so the 500 error it gives you will probably give you the information you want. The blank lines at the end are important otherwise it will just seem to hang.


If they have error pages enabled, you can go to a non-existent page and look at the bottom of the 404 page.


Your best option is through PHP: All version requests from the client side cannot be trusted since your Apache could be configured with ServerTokens Prod and ServerSignature Off. See: http://www.petefreitag.com/item/419.cfm


In the default installation, call a page that doesn't exist and you get an error with the version at the end:

Object not found!

The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.
If you think this is a server error, please contact the webmaster.
Error 404
localhost
10/03/08 14:41:45
Apache/2.2.8 (Win32) DAV/2 mod_ssl/2.2.8 OpenSSL/0.9.8g mod_autoindex_color PHP/5.2.5


Simply use something like the following - the string should be there already:

<?php
   if(isset($_SERVER['SERVER_SOFTWARE'])){
      echo $_SERVER['SERVER_SOFTWARE'];
   }
?>

Use this PHP script:

 $version = apache_get_version();
    echo "$version\n";

Se apache_get_version.

참고URL : https://stackoverflow.com/questions/166607/how-do-i-find-the-version-of-apache-running-without-access-to-the-command-line

반응형