SPRING :: NOTE

[PHP] Directory Listing (디렉토리 리스팅) 본문

Development Language/WEB

[PHP] Directory Listing (디렉토리 리스팅)

RAYZIE 2016. 6. 10. 14:55
반응형

보통 서버설정에서 발생하는 취약점인데, 

브라우징 하는 모든 파일을 보여주고, 

파일 저장 및 열람이 가능하기 때문에 제2, 제3의 공격에도 이용 될 수 있습니다.




PHP상에서 폴더에있는 파일 리스트를 보여주는 다이렉트 리스팅입니다.


2차, 3차 해킹의 위험이있기 때문에 꼭 필요하신부분에 사용하셔야 합니다.



<?php
$path = "./datafile";

search_file ( $path );
function search_file($path) {
	// 경로가 디렉토리인 경우
	if (is_dir ( $path )) {
		// 디렉토리 핸들러 생성
		if ($dir = opendir ( $path )) {
			// 디렉토리의 항목을 루프를 돌면서 구한다.
			while ( ($file = readdir ( $dir )) !== false ) {
				// 항목 이름이 "." 로 시작하지 않는다.
				if ($file [0] != ".") {
					$current_path = $path . "/" . $file;
					
					// 현재 항목이 디렉토리일 경우 재귀 호출을 한다.
					if (is_dir ( $current_path )) {
						search_file ( $current_path );
					} 					// 파일일 경우
					else {
						// 파일의 전체 경로 출력
						echo $file. "</a----><br />";
						
					}
				}
			}
		} else {
			echo "디렉토리 핸들러 생성 실패.  
                디렉토리에 권한이 제한 되어있거나 파일시스템 오류 입니다.";
		}
	} else
		echo $path . " 는 디렉토리가 아닙니다.";
}
?>
반응형
Comments