경로 조작 (Path Traversal) - 잘못된 join
Path Traversal
설명
경로 조작 취약점은 부적절한 입력 검증으로 인해 어플리케이션이 제한 디렉토리 밖의 파일들을 접근하거나 수정할 수 있는 보안 취약점입니다. 이로 인해 민감정보의 노출 또는 파일 손상 등이 발생할 수 있습니다.
잠재적 영향
민감 데이터 노출: 제한 디렉토리를 벗어나 임의의 파일로 접근 가능.
악의적 파일 조작: 파일 쓰기 및 덮어쓰기 취약점.
해결 방법
사용자 입력을 경로 결합 함수에 전달 전에 항상 정규화 및 검증합니다.
특수 문자나 허용되지 않은 디렉토리 경로를 필터링합니다.
사용 권한을 제한하여 네트워크 범위를 최소화합니다.
취약한 코드 및 안전한 코드 예시
취약한 코드
const path = require("path");
function unsafePathTraversal(user_input) {
return path.join("/safeDir", user_input);
}안전한 코드
설명:
취약한 코드: 입력값을 검증하지 않고 경로 결합에 사용하여, 공격자가 조작된 값을 통해 제한 디렉토리 밖의 영역을 접근할 수 있음.
안전한 코드: 사용자 입력 값을 검증 및 정규화하여 경로 결합 과정에서 안전성을 확보.
참조
Last updated