Nginx의 파일명 논리 결함 _CVE-2013-4547 취약점 재현성

Nginx의 파일명 논리 결함 _CVE-2013-4547 취약점 재현성

첫째, 취약점 설명

사실,이 취약점과도 코드의 실행에 영향을 우회 할 수있는 권한의 결과로, 잘못을 잘못 사용자 요청을 파일 이름을 얻기 위해 URL 요청을 구문 분석 주로 많은 관계없는 코드를 실행합니다.

취약점의 두 번째 원칙

예를 들어, 예를 들어, Nginx에 .PHP 종료 요구에 맞게, 다음과 같이 일반적으로 작성, 구문 분석 FastCGI를 전송됩니다 : 

위치 ~ \ .PHP의 $ { 
    fastcgi_params을 포함한다; 

    fastcgi_pass    127.0 . 0.1 : 9000 ; 
    fastcgi_index의 index.php를; 
    fastcgi_param SCRIPT_FILENAME   / var에 / www /에서 html로 $ fastcgi_script_name; 
    fastcgi_param DOCUMENT_ROOT / var에 / www /에서 html로; 
}

정상적인 상황에만 .PHP 확장은 FastCGI를 해상도로 전송됩니다, (의 PathInfo는 경우 폐쇄).

그리고 존재의 CVE-2013-4547의 경우, 우리는 [가 0x20] [× 00] .PHP이 정규 \ .PHP $ 일치하는 URI가 될 수 1.gif 요청, 위치 블록을 입력 할 수 있지만, 입력 한 후, Nginx에 잘못 FastCGI를 한 값으로 설정된다 SCRIPT_FILENAME 1.gif [가 0x20] 요청 파일.

FastCGI를 사용 SCRIPT_FILENAME의 값에 기초하여 해석하고, 마지막으로 구문 분석 취약점 초래한다.

그래서 우리는 단지 파일의 끝에 공백을 업로드해야합니다, 당신은 PHP가 파싱 할 수 있습니다.

또 다른 예를 들어, 같은 수 많은 사이트에 대한 액세스가 배경 IP 제한 : 

위치 / 관리자는 / { 127.0을 . 0.1 ; 
    모두 거부; 
}

우리는 다음과 같은 URI를 요청할 수 있습니다 / 테스트 [가 0x20] /../ 관리자 / index.php에, URI가가 IP 검증을 우회 위치 / 관리 / 일치하지 않습니다 뒤에 있지만 최종 요청입니다 / 테스트 [가 0x20] /../ /admin/index.php입니다 관리자 / index.php 파일, 배경에 성공적인 방문. (이 잘못된 일에 점프가 존재하지 않는 파일을 버스트 것, Windows에서 이러한 제한이없는 경우에도, 존재하지 않는 디렉토리가있는 경우, 리눅스 시스템의 기능입니다이 전제는 디렉토리 검사가 필요하다)는

셋째, 취약점은 버전에 영향을 미친다

Nginx에 0.8.41 ~ 1.4.3

Nginx의 1.5.0 ~ 1.5.7

넷째, 환경 취약점 및 구축 재현성

1, 고정 표시기 빌드 vulhub 환경 취약점, 환경 취약점은 시작

고정 표시기-작성 빌드

-d를 고정 표시기-구성

성공적인 테스트 환경을 구축 할 수 있는지 2, 브라우저 액세스 http://172.17.0.1:8080/,

  

3, 백 엔드 여과보고

  

4, 컨텐츠 내에서하는 mu.jpg을 업로드하거나 <PHP는은 phpinfo ();?>를, 상자의 뒷면에주의를 지불하고 업로드에 성공한 발견

  

그래서 5 건설 mu.jpg [가 0x20] [0 × 00] .PHP Nginx의 분석 취약점 원인 우리 mu.jpg은 PHP로 해결

mu.jpg 뒤의 두 공간의 수집 된 데이터 패킷을 트림 [가 0x20]가 0x20] ---> [가 0x20] [0 × 00], 업로드 발견

  

  

6、访问http://172.17.0.1:8080/uploadfiles/1.gif[0x20][0x00].php,即可发现PHP已被解析

  

五、漏洞防御

1、升级版本

 

 

--------------------------------------------------------------------------------------------------

参考资料: https://github.com/vulhub/vulhub/tree/master/nginx/CVE-2013-4547

 

추천

출처www.cnblogs.com/yuzly/p/11221564.html