보안/보안 개념

웹 쉘을 이용한 파일 업로드 취약점

no-brake 2026. 5. 22. 17:26

[취약점 조건]

  • 서버에 파일 업로드 가능
  • 업로드 폴더 웹 디렉토리 내부에 존재
  • 폴더 실행권한 존재
  • 파일에 대한 필터링 존재 안함(확장자, 파일 내용, 파일 저장 경로, 파일 크기, 파일 이름 등)

[웹 쉘(Web Shell)]

  • 웹 서버에 설치되어 원격으로 서버 제어 가능하게 하는 스크립트 파일
  • 주로 서버 언어 스크립트로 제작
  • 공격자가 서버 칩입 후 지속적으로 접근하거나 명령을 실행 목적
  • 한 줄 웹 쉘
    • 'eval()' 나 'exec()' 함수와 같은 명령어 실행하는 한 줄 코드
      • eval() 함수 : 문자열로 된 프로그래밍 코드(수식이나 명령어)를 인자로 받아 이를 실제 코드로 해석하고 실행
      • exec() 함수 : 현재 실행 중인 프로세스의 메모리 공간을 새로운 프로그램으로 덮어씌워 실행하는 시스템 호출
    • 파일 사이즈가 작아 탐지에 쉽게 되지 않으나, 기능이 제한적임
  • 브라우저 웹 쉘
    • 그래픽 사용자 인터페이스(GUI)를 통한 서버 제어 가능
    • 파일 사이즈 커 탐지에 쉽게 적발되나, 다양한 기능을 포함

[브라우저 웹 쉘 실습]

  • 보통 업로드 파일이 '.php' 같은 서버 스크립트 확장자를 업로드는 일반적이지 않은 상황으로, 보안 설정으로 업로드 허용하지 않아야 함

  • 게시글 URL로 확인 가능 정보 : borad 디렉토리 하위 'qna_view.php'에서 게시물 노출 확인

  • 첨부 파일 호버시 표시되는 내용으로 확인 가능 정보 : 사용자가 업로드한 파일은 업로드한 사용자의 닉네임 폴더 생성 후 그 안에 저장되는 구조 유추

  • upload 이름 디렉토리가 존재한다는 가정으로 성공적으로 웹 쉘접속 완료

  • 웹 쉘은 웹 서버 권한을 얻기 때문에 root(최상위) 권한이 아닌 apache 권한을 얻음

  • DB데이터 관련 접근시 DB 계정 정보를 통해 DB 탈취 가능

'보안 > 보안 개념' 카테고리의 다른 글

SYSMON  (0) 2026.05.26
파일 업로드 취약점 대응 방안(보안코딩)  (0) 2026.05.26
LFI와 RFI  (0) 2026.05.20
XSS-WAF로 차단  (0) 2026.05.20
SQL Injection WAF 및 공격차단  (0) 2026.05.19