홈페이지 취약점 분석 이야기 파일 지도 사진 깨알






>> 목록보이기
#HTTP Method #OPTIONS #TRACE #HTTP 헤더 #HTTP header #nmap #nc #telnet #curl

HTTP Method 수동점검 방법

홈페이지 취약점 점검과정에서 niktonmap 결과에서 대상 웹서버가 지원하는 HTTP 메소드를 확인할 수 있다. HTTP에서 제공하는 메소드 중 다수는 개발자가 웹 어플리케이션을 시험하기 위한 목적으로 제공된다. 이러한 메소드는 악의적인 공격에 이용될 수 있으므로, 개발이 끝난 웹 서버에서는 불필요한 메소드를 비활성화하는 것이 바람직하다.

HTTP/1.1(RFC 2616)에서는 다음과 같은 8가지 메소드를 제공한다.

  • HEAD
  • GET
  • POST
  • OPTIONS
  • PUT
  • DELETE
  • TRACE
  • CONNECT

일반적으로 웹서버는 GET, POST, HEAD, OPTIONS의 네가지 메소드만 지원하는 것이 좋다. 다음 네 메소드는 활성화되었을 때 심각한 보안 취약점을 야기할 수 있으므로 서비스 운영 시에는 비활성화해야 한다.

  • PUT: 웹 클라이언트에서 웹 서버로 파일을 올릴 수 있다. 악용시에는 웹쉘을 통한 시스템 침투가 가능하다.
  • DELETE: 웹 클라이언트에서 웹 서버의 파일을 삭제할 수 있다. 서비스에 필요한 파일을 지우게 되면 서비스거부공격(DoS)이 가능하다.
  • CONNECT: 웹 서버가 웹 클라이언트로 HTTP 통신을 중계할 수 있다. HTTP 프록시(HTTP Proxy)로 악용이 가능하다.
  • TRACE: 웹 클라이언트가 전송한 데이터를 모두 출력한다. XST(Cross-site Tracing) 공격으로 세션탈취 등에 악용할 수 있다.

웹취약점스캐너는 대부분 HTTP 메소드를 분석해서 그 결과를 제공하므로 이를 통해 불필요한 메소드에 대한 보고서를 작성하면 된다. 필요시에는 수작업으로 확인할 수도 있는 데 curl을 사용하는 것이 가장 편리하다.

curl을 이용한 HEAD 메소드 점검방법

curl -I url

curl을 이용한 OPTIONS 메소드 점검방법

curl -v -X OPTIONS url

curl을 이용한 TRACE 메소드 점검방법

curl -v -X TRACE url

다음은 curl을 이용한 HTTP 메소드 점검 사례이다. 녹색 부분이 사용자 입력이다.

root@kali:~# curl -v -X OPTIONS http://webhack.dynu.net/icons/
*   Trying 122.32.19.138...
* Connected to webhack.dynu.net (122.32.19.138) port 80 (#0)
> OPTIONS /icons/ HTTP/1.1
> Host: webhack.dynu.net
> User-Agent: curl/7.50.1
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Thu, 10 Nov 2016 06:27:38 GMT
< Server: Apache
< Allow: GET,HEAD,POST,OPTIONS
< Content-Length: 0
< Content-Type: httpd/unix-directory
< 
* Connection #0 to host webhack.dynu.net left intact
root@kali:~#

위의 예에서는 /icons/ 디렉토리를 대상으로 OPTIONS 메소드를 점검하였다. 최신 Apache 웹서버는 기본 DocumentRoot에 대한 방어기작이 존재하는 것으로 보이나 Alias로 선언된 DocumentRoot 바깥에 존재하는 디렉토리(/cgi-bin/, /icons/ 등)에 대해서는 활성화된 메소드가 허용된다.

다음은 curl을 이용한 TRACE HTTP 메소드 점검 사례이다. 녹색 부분이 사용자 입력이다.

root@kali:~# curl -v -X TRACE http://www.memozee.com/
*   Trying 222.237.78.13...
* Connected to www.memozee.com (222.237.78.13) port 80 (#0)
> TRACE / HTTP/1.1
> Host: www.memozee.com
> User-Agent: curl/7.49.1
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Thu, 10 Nov 2016 16:00:25 GMT
< Server: Apache
< Connection: close
< Transfer-Encoding: chunked
< Content-Type: message/http
< 
TRACE / HTTP/1.1
Host: www.memozee.com
User-Agent: curl/7.49.1
Accept: */*

* Closing connection 0
root@kali:~#

다음은 nmap을 이용한 HTTP 메소드 점검 사례이다. 녹색 부분이 사용자 입력이다.

root@kali:~# nmap --script http-methods webhack.dynu.net

Starting Nmap 7.31 ( https://nmap.org ) at 2016-11-10 15:17 KST
Nmap scan report for webhack.dynu.net (122.32.19.138)
Host is up (0.0076s latency).
Not shown: 994 closed ports
PORT     STATE    SERVICE
23/tcp   filtered telnet
80/tcp   open     http
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
1720/tcp filtered h323q931
8000/tcp filtered http-alt
8080/tcp open     http-proxy
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
8082/tcp open     blackice-alerts

Nmap done: 1 IP address (1 host up) scanned in 94.09 seconds
root@kali:~#

다음은 nc(netcat)을 이용한 OPTIONS HTTP 메소드 점검 사례이다. 녹색 부분이 사용자 입력이다.

root@kali:~# nc webhack.dynu.net 80
OPTIONS /icons/ HTTP/1.1
Host: webhack.dynu.net

HTTP/1.1 200 OK
Date: Thu, 10 Nov 2016 06:24:04 GMT
Server: Apache
Allow: GET,HEAD,POST,OPTIONS
Content-Length: 0
Content-Type: httpd/unix-directory

root@kali:~#

다음은 telnet을 이용한 OPTIONS HTTP 메소드 점검 사례이다. 녹색 부분이 사용자 입력이다.

root@kali:~# telnet webhack.dynu.net 80
Trying 122.32.19.138...
Connected to webhack.dynu.net.
Escape character is '^]'.
OPTIONS /icons/ HTTP/1.1
Host: webhack.dynu.net

HTTP/1.1 200 OK
Date: Thu, 10 Nov 2016 06:25:35 GMT
Server: Apache
Allow: GET,HEAD,POST,OPTIONS
Content-Length: 0
Content-Type: httpd/unix-directory

Connection closed by foreign host.
root@kali:~#

[처음 작성한 날: 2016.11.10]    [마지막으로 고친 날: 2016.11.11] 


< 이전 글 : 세션쿠키와 HttpOnly (2016.11.10)

> 다음 글 : 파일업로드(웹쉘) 방어하기 (2016.11.09)


크리에이티브 커먼즈 라이선스 이 저작물은 크리에이티브 커먼즈 저작자표시 4.0 국제 라이선스에 따라 이용할 수 있습니다.
잘못된 내용, 오탈자 및 기타 문의사항은 j1n5uk{at}daum.net으로 연락주시기 바랍니다.
문서의 시작으로 컴퓨터 깨알지식 웹핵 누리집 대문
 ________________
< I'll be there. >
 ----------------
                       \                    ^    /^
                        \                  / \  // \
                         \   |\___/|      /   \//  .\
                          \  /O  O  \__  /    //  | \ \           *----*
                            /     /  \/_/    //   |  \  \          \   |
                            @___@`    \/_   //    |   \   \         \/\ \
                           0/0/|       \/_ //     |    \    \         \  \
                       0/0/0/0/|        \///      |     \     \       |  |
                    0/0/0/0/0/_|_ /   (  //       |      \     _\     |  /
                 0/0/0/0/0/0/`/,_ _ _/  ) ; -.    |    _ _\.-~       /   /
                             ,-}        _      *-.|.-~-.           .~    ~
            \     \__/        `/\      /                 ~-. _ .-~      /
             \____(oo)           *.   }            {                   /
             (    (--)          .----~-.\        \-`                 .~
             //__\\  \__ Ack!   ///.----..<        \             _ -~
            //    \\               ///-._ _ _ _ _ _ _{^ - - - - ~
.. -- -- | - .. .... | ... / .. .../ ... {] . .. .. .. ..| ...... .../ .../ .. ...... ... ... ] .. [ .../ ..../ ......./ .. ./// ../ ... .. ... .. -- -- | - .. .... | ... / .. .../ ... {] . .. .. .. ..| ...... .../ .../ .. ./// ../ ... .. ... ...| ..../ ./ ... / ..| ....| ........ / ... / .... ...... ... ... ] .. [ .../ ..../ ......./ .....| ..../ ./ ... / ..| ....| ........ / ... / .... ...| ..../ ./ ... / ..| ....| ........ / ... / .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .