2014-07-24 1 views
9

웹 응용 프로그램에 경로 통과 취약점이 없는지 확인하고 싶습니다.웹 서버의 경로 통과 확인

나는 이런 식으로, 그것을위한 curl를 사용하려고 해요 :

$ curl -v http://www.example.com/directory/../ 

내가 프록시를 포함하는 특정의 nginx 규칙이 아님을 테스트하기 위해 명시 적으로 /directory/../ URL을 만들 수 HTTP 요청을 부탁합니다 path traversal에 취약합니다. 출력에서 볼 수 있듯이,

> GET /directory/../ HTTP/1.1 

그러나 curl/ URL에 관한 요청을 재 작성한다 :

* Rebuilt URL to: http://www.example.com/ 
(...) 
> GET/HTTP/1.1 

이 가능합니다 즉,이 HTTP 요청을 전송하고 싶습니다 이 테스트에 대해 curl을 사용하여 요청에서 정확한 URL을 전달하도록 강요합니까? 그렇지 않은 경우 적절한 방법은 무엇입니까?

+0

내 답변에 추가 정보가 필요하십니까? – SilverlightFox

+1

fernando, 당신은 곱슬 머리 만 사용하는이 질문에 대한 답변을 얻었습니까? –

+0

어떤 컬 (curl) 버전을 사용하고 있습니까? 적어도 로컬 호스트 URL을'말 '할 때 나는이 동작을 복제 할 수 없습니다. – alexw

답변

1

intercepting proxy을 사용하여 응용 프로그램에 대한 요청을 캡처하고 응용 프로그램에서 요청한 원시 URL과 같이 매개 변수가 변경된 요청을 반복 할 수 있습니다.

Burp Suite의 무료 버전을 사용하면 리피터를 사용할 수 있습니다.

그러나이 또한 허용해야하는 대체 방법이 있습니다 (예 : Zap, WebScarabFiddler2).

1

나는 curl을 통해이를 수행하는 방법을 모르지만 항상 telnet을 사용할 수 있습니다. 이 명령을보십시오 :

telnet www.example.com 80

당신은 볼 수 있습니다 : 이제 www.example.com에 열린 연결이

Trying xxx.xxx.xxx.xxx... Connected to www.example.com. Escape character is '^]'.

.

GET /directory/../ HTTP/1.1

을 그리고 당신은 당신의 결과를 볼 수 : 이제 그냥 페이지를 가져 오지 명령을 입력합니다. 예 :

HTTP/1.1 400 Bad Request

11

당신이 찾고있는 컬 플래그는 curl --path-as-is입니다.