it-gundan.com

HTTP TRACE 방법 테스트

웹 서버에서 HTTP TRACE를 테스트하려면 어떻게해야합니까?

HTTP TRACE 메서드가 비활성화되어 있는지 확인하는 방법을 테스터에게 교육시켜야합니다.

이상적으로 웹 서버 응답을 HTTP TRACE 명령으로 반환하려면 https 연결을 시작하기 위해 Firebug에 붙여 넣을 스크립트가 필요합니다.

배경 :

보안 펜 테스터는 HTTP TRACE 취약점을 식별했으며이 취약점이 수정되었음을 증명해야합니다.

참조 :

46
Andrew Russell

내가 생각할 수있는 가장 간단한 방법은 cURL (스크립트 가능)을 사용하는 것입니다.

 curl -v -X TRACE http://www.yourserver.com

TraceEnable Off로 Apache 서버에서 실행하면 HTTP/1.1 405 Method Not Allowed가 올바르게 반환됩니다 (아파치 2.2.22에서 테스트).

CURL에 SSL 레이어에 올바른 정보가 제공된 경우 HTTPS 사이트에서도 작동합니다. 이것은 게으른 사람의 구글 체크입니다

curl --insecure -v -X TRACE https://www.google.com/

... 연결을 협상합니다 (인증서 체인을 확인하지는 않지만 TRACE 상태를 확인하기 때문에 여기서 문제가되지 않음) .405로 응답합니다.

* Server certificate:
*        subject: C=US; ST=California; L=Mountain View; O=Google Inc; CN=www.google.com
*        start date: 2013-02-20 13:34:56 GMT
*        expire date: 2013-06-07 19:43:27 GMT
*        subjectAltName: www.google.com matched
*        issuer: C=US; O=Google Inc; CN=Google Internet Authority
*        SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
> TRACE / HTTP/1.1
> User-Agent: curl/7.25.0 (x86_64-suse-linux-gnu) libcurl/7.25.0 OpenSSL/1.0.1c zlib/1.2.7 libidn/1.25 libssh2/1.4.0
> Host: www.google.com
> Accept: */*

< HTTP/1.1 405 Method Not Allowed
53
LSerni

두 가지 방법이 있습니다.

1 단계: openssl s_client -connect example.com:443

2 단계 :

TRACE / HTTP/1.1
Host: example.com

(Enter를 두 번 누르십시오)

또는

OPTIONS / HTTP/1.1
Host: example.com

(Enter를 두 번 누르십시오) (입력하여 빠르게 붙여 넣기하여 붙여 넣기해야 할 수도 있습니다) 3 단계 : 출력 여부를 확인하십시오. 입력하지 않으면 400 오류가 발생합니다.

사용할 수있는 다른 도구는 그 누트입니다.

6
Lucas Kauffman

Burp Suite 또는 Zap 과 같은 proxy 를 사용하고 몇 가지 간단한 단계를 수행 할 수 있습니다.

  1. 선택한 프록시를 통과하도록 브라우저를 설정하십시오.
  2. 정상적인 HTTP 요청 (예 : GET /index.php HTTP/1.1) 차단
  3. hTTP 메소드를 TRACE로 변경하고 요청을 서버로 전송하십시오.
  4. hTTP 응답을 확인하십시오.

응답에 전체 요청이 포함 된 경우 TRACE가 활성화되고 올바르게 작동합니다.

5
Gurzo

다른 사람들이 말한 것은 테스트를 보내는 한 정확했지만 아무도 취약한 지 여부에 대한 정확한 식별을 제공하지 못했습니다. TRACE/TRACK 요청에 대한 모드 재 작성은 말할 것도없고 서버마다 다르게 응답합니다. TRACE 및 TRACK 취약점을 식별하는 두 가지 방법이 있습니다.이 취약점은 잘못된 긍정 또는 잘못된 부정을주지 않고 작동합니다 (알고 있습니다).

1) 대상은 상태 코드 <400 또는> = 600을 반환합니다.

2) 대상은 전달한 헤더를 반환합니다.

3
Eric

netcat를 사용하여 수행 할 수 있습니다.

nc www.myhost.com 80
TRACE /mypage.html HTTP/1.1
Host: www.myhost.com

출력의 예는

HTTP/1.1 405 Method Not Allowed
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1
Set-Cookie: JSESSIONID=rfyji7QBFFld7HwMGLVM+F8s.undefined; Path=/
Content-Type: text/html;charset=utf-8
Content-Length: 1125
Date: Fri, 06 Mar 2015 06:06:29 GMT
3

웹 사이트의 숙련 된 사용자가 제공 한 모든 훌륭한 답변에 감사드립니다. 문의 사항을 확인한 후 OWASP에 대해 언급하셨습니다. 나는 당신이 owasp와 esp owasp 라이브 CD의 사용에 익숙하다는 것을 고려하고 있습니다.

CAL9000. 이 도구에는 http 요청 필드가 실제로 전체 http 헤더의 사용자 정의 생성을 허용하는 필드보다 많습니다. trace를 선택하여 헤더 옵션을 정의하고 이동을 클릭하면됩니다. 응답은 아래 텍스트에서 볼 수 있습니다.

이 도구를 다른 도구보다 더 많이 권장하는 이유는이 도구가 다른 응용 프로그램 보안 개념보다 더 역전 된 커뮤니티에서 제공하기 때문입니다. 이러한 도구는 전문가가 테스트하고 확인합니다. 자세한 정보 owasp ref

대체 방법

http://yehg.net/pentest/CAL9000/#httpRequests

온라인 버전의 도구입니다.

비고에 관한 비고

Firefox는 현재 xmlHttpRequest를 통해 TRACE 기능을 지원하지 않습니다. CAL9000은 서버 측 스크립트에서 TRACE 정보를 가져옵니다. 또한 리소스 ( http://www.blah.com/index.html )에 대한 요청이 반드시 디렉토리에 대한 요청과 동일한 응답을 생성 할 필요는 없음을 상기시킵니다 (- http://www.blah.com/js/ ), 같은 사이트에 있더라도

2
Saladin