파일 업로드 기능은 대부분의 웹 애플리케이션에 필수 기능입니다. 웹사이트에서는 사용자가 자신의 아바타를 업로드할 수 있고, 일부 소셜 네트워킹 사이트에서는 사용자가 사진을 업로드할 수 있으며, 일부 서비스 웹사이트에서는 사용자에게 다음을 요구합니다. 지원 자료의 전자 파일 업로드, 전자상거래 웹사이트에서는 사용자가 제품 상태 등을 표시하기 위한 사진을 업로드할 수 있습니다. 적절한 보안 조치가 없으면 겉보기에 사소해 보이는 파일 업로드 기능이라도 극도로 높은 보안 위험에 직면할 수 있습니다.
사용자가 파일 업로드 기능 모듈에서 파일을 업로드할 때, 파일 업로드 과정에서 웹 애플리케이션이 파일의 보안을 효과적으로 검증하지 못하는 경우 공격자는 다음과 같은 공격을 할 수 있다. 이 경우 시스템에 파일 업로드 취약점이 있는 것으로 판단됩니다.
파일 업로드 취약점의 가장 일반적인 방법은 웹사이트 Trojan(webshell) 파일을 업로드하는 것입니다. WEBSHELL은 개발 언어에 따라 웹페이지 Trojan 파일이라고도 합니다. ASP 트로이목마, PHP 트로이목마, JSP 트로이목마 등 이 유형의 트로이목마는 시스템 명령 실행, 스크립트 언어로 파일 읽기 및 쓰기 기능을 사용합니다. 일단 서버에 업로드되고 스크립트 엔진에 의해 구문 분석되면 공격자는 서버를 제어할 수 있습니다. .
Webshell 파일은 큰 말과 작은 말(한 문장의 트로이 목마), 그림 말 등으로 구분됩니다.
Damas: 기능은 상대적으로 좋고 브라우저에서 사용할 수 있으며 일반적으로 숨기는 양이 많습니다. 상대적으로 약하고 코드의 양이 많으며 일반적으로 암호화 및 기타 방법을 통해 기능을 숨겨야 합니다.
Xiao Ma: 기능은 간단하며 클라이언트와 함께 사용해야 합니다. 코드 크기는 일반적으로 작습니다. 은폐가 상대적으로 강하고 변형 및 우회 필터링을 통해 기능을 숨기기 쉽습니다. 크나이프 도구.
Picture Horse: 웹사이트에서 이미지 관련 형식의 업로드를 제한하면 공격자는 제한을 우회할 수 없으며 Picture Horse를 사용하여 웹셸 작업을 구현하려고 시도할 수 있습니다.
한 문장으로 말하면 트로이 목마는 와 유사하며, 트로이 목마 파일은 다음을 통해 서버에 업로드됩니다. 파일 업로드 모듈. $_POST['v']의 매개변수 v는 실행하려는 명령을 매개변수 v를 통해 서버에 전달하거나 cknife 도구를 사용하여 대상 서버를 작동합니다.
(1) 본 웹페이지의 업로드 형식은 제한되어 있으며 jpg, jpeg, JPG, JPEG 형식을 준수해야 하므로 원본 형식을 1.jpg 형식으로 변경합니다(서버측 확인)
burp suite 소프트웨어를 열어 데이터 패킷을 가로채고 파일 이름을 1.php로 변경하면 php 스크립트가 실행될 수 있습니다. 그렇지 않으면 접미사가 jpg인 파일을 업로드할 수는 있지만 실행 기능은 없습니다.
hackbar 플러그인에서 v=phpinfo()를 정의하면 php
의 현재 상태에 대한 많은 정보를 볼 수 있습니다. (2) 이 페이지는 업로드 형식( MIME), 파일 형식을 JPEG 또는 PNG(서버측 확인)로 변경하세요
burp suite를 사용하여 정보를 가로채고 콘텐츠 유형을 image/png
로 변경하세요. hackbar 도구를 사용하여 v=phoinfo() 매개변수를 정의합니다. PHP 상태 정보 보기
(3) 이 페이지는 파일 접미사를 필터링하고 PHP 유형 파일을 허용하지 않습니다(서버 측 확인)
burp suite 소프트웨어를 열어 정보를 가로채고 파일을 복사합니다. 이름을 1.PHp로 변경하여 웹 서버 식별을 우회합니다
hackbar를 사용하여 v=system(ipconfig);
정의 (4) 잘림을 사용하여 jpg를 자릅니다. 이 문장은 다소 혼란스럽습니다. 올바른 작성 방법은 다음과 같습니다. 1. 파일 이름을 자르기 위해 "%00"을 사용하는 파일 업로드 취약점. 2. "%00"을 사용하는 경우 "ctrl+shift+u"를 사용하여 컴파일할 수 있습니다.
1.php%00.jpg, %00 ctrl+shift+u를 사용하여 컴파일
hackbar 도구를 사용하여 매개변수 정의 v=phoinfo(); PHP 상태 정보 보기 (5) 이 페이지 사진 업로드만 허용됩니다. 접미사 이름 변경은 유효하지 않습니다
b374k.jpg 사진 말 업로드, 로그인 비밀번호는 b374k입니다
브라우저를 사용하여 웹쉘 작업에 사진 말을 사용하세요
파일 허용 이 페이지에 업로드됩니다. 유형에는 jpg, jpeg, png, gif 및 7z가 포함됩니다. apach에서 접미사 이름을 인식하지 못하는 경우 확장자를 뒤에서 앞으로 식별하는 방법을 이용하고, burp를 통해 1.jpg를 1.php.7z로 변경하면 압축파일이 됩니다.
버프 소프트웨어를 통해 패킷을 캡쳐하고, 버프를 통해 1.jpg를 1.php.7z로 변경하면 압축파일이 됩니다.
hackbar 도구를 사용하여 v=phoinfo() 매개변수를 정의하고 PHP 상태 정보를 확인하세요
파일 업로드 취약점은 웹 보안에서 비교적 일반적이고 유해한 취약점입니다. 장점: 예를 들어, 파일 접미사 블랙리스트의 범위를 강화하고, 업로드된 파일의 이름을 무작위로 수정하고, 임시 디렉터리에서 실행 권한을 허용하지 않으며, 업로드된 파일의 저장 디렉터리 등을 지정합니다.
위 내용은 웹 파일 업로드 취약점 분석 예시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!