23회 선택하기
서술형 선택하기
13. PHP 로 작성된 게시판의 소스코드이다. 해당 게시판의 취약점명, 업로드 로직을 우회하는 기법, 공격이 성공하기 위한 조건을 설명하시오.
[게시판 소스 코드]
<?
// 파일 확장자 중 업로드를 허용할 확장자를 정의함
$full_filename = explode(".", $_FILES['userfile']['name']);
$extension = $full_filename[sizeof($full_filename)-1];
if (!( ereg($extension","hwp") || ereg($extension","pdf") || ereg($extension","jpg")) )
print "업로드 금지 파일 입니다";
exit;

If (($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") ||
($_FILES["file"]["type"] == "image/JPG") || ($_FILES["file"]["type"] == "text/plain"))
{
     echo "파일 업로드 성공"
}
else
{
     echo "파일 업로드 실패. 허용된 파일의 형식이 아닙니다."
}
?>

클릭하면 정답이 보입니다.
정답 확인 맞췄어요 O 틀렸어요 X
1) 파일 업로드 취약점 : 실행 가능한 파일을 웹서버에 업로드 하여 중요정보 탈취, 시스템 명령어 수행 등과 같은 악의 적인 행위 가능

2) 우회 기법
- 파일 타입 변조 : Proxy 툴을 이용하여 Request Message 헤더내에 파일 유형을 알려주는 Content-Type 속성을 image/jpeg 으로 변경

- 파일 확장자 변조 : 파일 확장자를 대소문자를 섞거나(test.PhP), 이중 확장자(test.php.jpeg or test.jpeg.php) 사용

- Null 바이트 삽입 : Null바이트(%00)와 .jpeg 확장자를 함께 접목하여 업로드(예: test.php%00.jpeg)하면 파일 확장자 검증 로직은 통과되고, 서버에 저장시에는 Null바이트를 문자의 끝으로 해석하여 test.php로 저장됨.

3) 공격 성공 조건
- 파일 타입 또는 확장자 변조가 서버의 필터링 로직을 통과해야 함
- 업로드 하는 파일이 서버에 설정된 업로드 제한 조건(예: 사이즈 제한(LimitRequestBody)에 걸리지 않아야 함
- 업로드 된 파일이 서버에 설정된 아래와 같은 실행 제한 조건에 걸리지 않아야 함
. AddType 지시자에 따라 MIME type 이 text/html로 재조정(실행불가)
. FileMatch 지시자에 따라 직접 URL 호출 금지
위키 해설 위키 편집·등록하다 보면 어느새 합격!
📝 문제 해설(등록자)
클릭하면 보입니다.
🤖 AI 문제 해설
AI의 해설은 정확하지 않을 수 있으니 읽어보시고 꼭 평가해주세요. 시기에 따라 사용 가능한 모델이 달라질 수 있습니다. 🤝 무료 LLM 모델을 찾고 있습니다.
클릭하면 보입니다.
AI 답변을 생성 중입니다.
Loading...

최대 1분까지 걸릴 수 있습니다.

🗣️ 관련 포럼글
자유 댓글

모든 문제들의 저작권은 원저작권자에게 있습니다. 본 사이트는 웹상에 공개되어 있는 문제만 모아서 보여드립니다.
저작권 안내   데이터 보호 안내   제휴 문의

copyright 2026 뉴비티::새로운 CBT 시스템 - newbt.kr (Listed on LeanVibe)