File Upload 취약점

2024. 10. 24. 13:36·Hacking/Web

정의

서버에서 실행될 수 있는 실행 파일(ASP, PHP, JSP 등)을 업로드하고, 업로드된 파일을 웹을 통해 실행할 수 있는 경우, 내부정보 조회, 시스템 제어 등 매우 심각한 문제를 일으킬 수 있는 공격 기법

공격포인트 찾는 방법

파일 첨부란에 허용하고 있는 확장자로 업로드 후 업로드되는 위치 파악

 

실행 파일(ASP, JSP, PHP 등)에 대하여 업로드 시 필터링 여부를 확인 후 필터링 시 널 바이트, 세미콜론(;)을 이용한 우회 시도

- 파일 첨부란에 실행 파일 업로드 시 세미콜론을 이용하여 업로드 시도

 

- 실행 파일이 업로드된 것을 확인 가능

 

파일 업로드 우회 공격 유형

- IIS 웹 서버: 화이트리스트 방식을 사용하는 경우 발생 가능한 우회 공격: test.asp -> test.asp;.jpg

- 널 바이트를 이용한 우회 공격: test.php -> test.php%00.jpg

- Content-Type 우회 공격: Content-Type을 변조하여 우회 공격

filename = "test.html"
Content-Type: text/html --> image/jpegc // 이미지 태그로 변조 시도

 

대응 방안

1) 화이트 리스트 방식으로 허용된 확장자만 업로드를 허용하도록 설정한다.

2) 업로드 파일 실행을 차단하기 위해 파일의 저장 경로를 웹 루트 외부로 지정하고, 파일명과 확장자를 사용자가 유추할 수 없는 문자로 변경되도록 로직을 구현한다.

3) 업로드 파일의 실행 속성을 제거시킨다.

4) 웹 프레임워크 사용 시, 실행 파일과 다른 확장자를 사용하여 URL 패턴을 적용할 수 있다. 이 경우, 접속 차단 기능의 필터링을 추가하고, 그 필터링에 대한 URL로 실행 파일의 확장자를 매핑하는 것으로, 실행 파일의 외부 접속을 차단할 수 있다.

 

공부하면서 알게된 정보

1) 주요정보통신기반시설 가이드라인에서 파일 업로드 항목을 보게 되면 확장자가 HTML인 경우도 취약하다는 기준이 있는데, HTML은 실행 파일도 아닌데 왜 업로드된다고 취약한 걸까?

- 웹 프로그래밍이 PHP로 설계되어 있는 경우 확장자가 HTML 이여도 해당 소스에 php 소스를 호출할 수 있기 때문에 취약하다고 판단

- JSP, ASP의 경우는 스크립트 구문을 삽입하여 공격하는 형식이여서 취약하다고 판단

<body>
 <h1>TEST</h1> //HTML 태그 동작 여부 확인
 <?php echo dae('Y-m-d H:i:s', time()); ?> // php 형식의 현재 날짜 및 시간 출력하는 구문
</body>

 

- HTML 파일에서 PHP 코드가 동작되는 것을 확인

 

2) 정리
- PHP: HTML 업로드 시 PHP 코드 실행 가능
- ASP: HTML 업로드 시 IIS에서 매핑시켜야 ASP 코드 실행 가능
- JSP: HTML 업로드 시 JSP 코드 사용 불가하기 때문에, HTML 업로드 시 스크립트 구문 삽입

 

'Hacking > Web' 카테고리의 다른 글

피들러(Fiddler Everywhere), Burp Suite 연동  (0) 2025.05.20
[BugBountyClub] Open Redirect  (0) 2025.05.20
정보 노출 취약점 발견 사례  (0) 2025.05.20
'Hacking/Web' 카테고리의 다른 글
  • 피들러(Fiddler Everywhere), Burp Suite 연동
  • [BugBountyClub] Open Redirect
  • 정보 노출 취약점 발견 사례
Gom_Po
Gom_Po
IT보안
  • Gom_Po
    Gom_Po
    Gom_Po
  • 전체
    오늘
    어제
    • 분류 전체보기 (47)
      • 버그바운티 (2)
      • CTF (8)
        • Lord Of SQL (0)
        • CCE (2021) (5)
        • 1753CTF (2024) (3)
      • Hacking (19)
        • Web (4)
        • Mobile (4)
        • CS (6)
        • System (2)
        • 무선랜 해킹 (3)
      • WarGame (17)
        • TryHackMe (5)
        • DreamHack (11)
        • Root-Me (0)
        • HackTheBox (1)
  • 인기 글

  • 태그

    드림핵
    betafast
    dvta
    Dreamhack
    #문제풀이
    #DreamHack
    웹 해킹
    TryHackMe
    sql injection
    write-up
    1753CTF
    문제풀이
    예선문제
    #CCE
    Android
    #대회
    #WebHacking
    #WriteUp
    writeup
    침투 모의해킹
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Gom_Po
File Upload 취약점
상단으로

티스토리툴바