← 목록으로

파일 업로드 취약점: 웹쉘로 이어지는 경로

[Web] Web · 작성: 2026-07-19 19:15:17 · 조회 4

파일 업로드 기능은 서버에 임의 파일을 쓸 수 있다는 것 자체가 공격 표면이다. 검증이 허술하면 실행 가능한 스크립트(웹쉘)를 올려서 원격 코드 실행으로 직결된다.

흔한 취약 패턴

탐지 방법

  1. 허용된 확장자 외에 .php, .jsp, .asp, .phtml 등을 업로드 시도
  2. 확장자 검증이 있으면 대소문자 변경(.PHP), 이중 확장자(.php.jpg), null byte, 특수문자 우회 시도
  3. 업로드된 파일이 실제로 저장되는 경로를 추정(응답에 포함되는 경우가 많음)하고 직접 접근해본다
  4. 접근된다면 그 경로에서 스크립트가 실행되는지 확인 (단순 정적 파일로 서빙되는지, 아니면 인터프리터가 실행하는지)
  5. SVG/이미지 업로드는 XSS(SVG 내 <script>)나 XXE(SVG는 XML 기반) 벡터로도 테스트

방어

Web 카테고리의 글 (6/11)

  1. SQL Injection: 원리, 탐지, 방어
  2. XSS (Cross-Site Scripting): Stored / Reflected / DOM 차이와 방어
  3. CSRF (Cross-Site Request Forgery): 원리와 방어
  4. IDOR / BOLA: 권한 검증이 빠졌을 때
  5. SSRF (Server-Side Request Forgery): 서버가 대신 요청하게 만들기
  6. 파일 업로드 취약점: 웹쉘로 이어지는 경로
  7. 안전하지 않은 역직렬화 (Insecure Deserialization)
  8. SSTI (Server-Side Template Injection): 원리와 탐지
  9. OS Command Injection: 원리와 필터 우회
  10. JWT 취약점: alg=none부터 알고리즘 컨퓨전까지
  11. Race Condition (TOCTOU) 취약점
← SSRF (Server-Side Request Forgery): 서버가 대신 요청하게 만들기 안전하지 않은 역직렬화 (Insecure Deserialization) →